cmdline-parser
v0.2.2
Published
Command line information parser
Downloads
6
Maintainers
Readme
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/[email protected]/dist/cmdlineparser.min.js"></script>
NPM module
Install the npm module
npm install cmdline-parser
And 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 Command
s (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
:true
if 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.git
- Install dev dependencies
npm install --save-dev
- Create a new branch
git checkout -b super-cool-feature
Then 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-version
- List and correct linting errors
npm run lint
- Update the minified/browser version of the library
npm run build
- Once 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-feature
- Then, open a pull request on GitHub from your fork.
- Go to this link
- Click compare across forks
- On the right, on
head repository
select your fork - And on
compare
select the branch you just created - Click on
Create Pull Request
and submit your pull request