cmdline-parser v0.2.2
CmdLineParser.js
cmdline-parser.js is a tool allowing you to retrieve all the information and components of a command line 🐚

Features ✨
- Can parse multiple commands
- Can parse quotes in arguments
- Supports multiple tokens
>,>>,<,<<,|,||,&&
- Supports node.js and browser
- Supports multiple parser instances
- Supports custom parser settings (disable tokens...)
JsDelivr
<script src="https://cdn.jsdelivr.net/gh/SkwalExe/cmdline-parser.js@v0.2.2/dist/cmdlineparser.min.js"></script>NPM module
Install the npm module
npm install cmdline-parserAnd import it in your project
const CmdLineParser = require('cmdline-parser');
let myParser = new CmdLineParser();Setting up
You can import the library into you website with JsDelivr or, you can use the npm module and import it in your project.
Parsing your first commands ✨
Parsing a command line
let command = "echo Hello; echo World";
let parsed = myParser.parse(command);The parse method returns an array of Commands (because a command line can contain multiple commands command1; command2).
Parsing a single command
let command = "echo Hello";
let parsed = myParser.parseCommand(command);The parseCommand method returns a Command object.
Parsing arguments
You can get an array of arguments from a string using the parseArgs method:
let args = myParser.parseArgs("echo 'Hello World' Hello universe");
// ['echo', 'Hello World', 'Hello', 'universe']Supports quotes ✨
The Command object
The Command object is a representation of a command and has the following properties:
invalid:trueif the command is invalid (for example if quotes are not closed)invalidReason: the reason why the command is invalid as a stringargs: array of arguments passed to the commandname: the name of the commandtext: the original command line
We also parse redirectors etc like >, >>, <, <<, |, ||, && inside the corresponding token
Example
let command = myParser.parseCommand("echo 'Hello World' > file.txt && echo 'Hello universe'");
console.log(command[">"]); // [ 'file.txt' ]
console.log(command["&&"]); // Command { name: 'echo', ... }final
If you have any problem, don't hesitate to open an issue
contributing
Start by forking this repository
Then clone your fork to your local machine.
git clone https://github.com/your-username/cmdline-parser.js.gitInstall dev dependencies
npm install --save-devCreate a new branch
git checkout -b super-cool-featureThen make your changes
Update the changelog and version number if needed (using Semantic Versioning) also, update the version number in the JsDelivr links
# bug fix npm version patch --no-git-tag-version # add a new feature npm version minor --no-git-tag-version # changes that break backwards compatibility npm version major --no-git-tag-versionList and correct linting errors
npm run lintUpdate the minified/browser version of the library
npm run buildOnce you're done, commit your changes and push them to the remote repository.
git add --all git commit -m "Add super-cool-feature" git push origin super-cool-featureThen, open a pull request on GitHub from your fork.
- Go to this link
- Click compare across forks
- On the right, on
head repositoryselect your fork - And on
compareselect the branch you just created - Click on
Create Pull Requestand submit your pull request