269 lines
5.7 KiB
Markdown
Executable File
269 lines
5.7 KiB
Markdown
Executable File
<!-- Please do not edit this file. Edit the `blah` field in the `package.json` instead. If in doubt, open an issue. -->
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[![oargv](http://i.imgur.com/TgmKSGy.png)](#)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# oargv
|
|
|
|
[![Support me on Patreon][badge_patreon]][patreon] [![Buy me a book][badge_amazon]][amazon] [![PayPal][badge_paypal_donate]][paypal-donations] [![Ask me anything](https://img.shields.io/badge/ask%20me-anything-1abc9c.svg)](https://github.com/IonicaBizau/ama) [![Travis](https://img.shields.io/travis/IonicaBizau/node-oargv.svg)](https://travis-ci.org/IonicaBizau/node-oargv/) [![Version](https://img.shields.io/npm/v/oargv.svg)](https://www.npmjs.com/package/oargv) [![Downloads](https://img.shields.io/npm/dt/oargv.svg)](https://www.npmjs.com/package/oargv) [![Get help on Codementor](https://cdn.codementor.io/badges/get_help_github.svg)](https://www.codementor.io/johnnyb?utm_source=github&utm_medium=button&utm_term=johnnyb&utm_campaign=github)
|
|
|
|
<a href="https://www.buymeacoffee.com/H96WwChMy" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/yellow_img.png" alt="Buy Me A Coffee"></a>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> Turns an object into a bash command.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## :cloud: Installation
|
|
|
|
```sh
|
|
# Using npm
|
|
npm install --save oargv
|
|
|
|
# Using yarn
|
|
yarn add oargv
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## :clipboard: Example
|
|
|
|
|
|
|
|
```js
|
|
// Dependencies
|
|
var OArgv = require("oargv");
|
|
|
|
console.log(OArgv({
|
|
r: true
|
|
, _: ["target.zip", "somedir"]
|
|
}, "zip", true));
|
|
// => zip "-r" "target.zip" "somedir"
|
|
|
|
console.log(OArgv({
|
|
d: "http://ionicabizau.net"
|
|
, tt: true
|
|
, size: "600x800"
|
|
}, "bat", true));
|
|
// => bat "-d" "http://ionicabizau.net" "--tt" "--size" "600x800"
|
|
|
|
console.log(OArgv({
|
|
escaping: "She said: \"Hello World\"!"
|
|
}, "foo", true));
|
|
// => foo "--escaping" "She said: \"Hello World\"!"
|
|
|
|
console.log(OArgv({
|
|
noCommand: "foo"
|
|
, b: true
|
|
}));
|
|
// => [ '--noCommand', 'foo', '-b' ]
|
|
|
|
console.log(OArgv({
|
|
__: "="
|
|
, custom: "Separator"
|
|
}, "foo"));
|
|
// => [ 'foo', '--custom=Separator' ]
|
|
|
|
console.log(OArgv({
|
|
author: ["foo@bar.com", "bar@foo.com"]
|
|
}));
|
|
// => [ '--author', 'foo@bar.com', '--author', 'bar@foo.com' ]
|
|
|
|
console.log(OArgv({
|
|
author: ["foo@bar.com", "bar@foo.com"]
|
|
}, true));
|
|
// => "--author" "foo@bar.com" "--author" "bar@foo.com"
|
|
|
|
console.log(OArgv({
|
|
author: ["foo@bar.com", "bar@foo.com"]
|
|
, __: "="
|
|
}, true));
|
|
// => "--author=foo@bar.com" "--author=bar@foo.com"
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## :question: Get Help
|
|
|
|
There are few ways to get help:
|
|
|
|
|
|
|
|
1. Please [post questions on Stack Overflow](https://stackoverflow.com/questions/ask). You can open issues with questions, as long you add a link to your Stack Overflow question.
|
|
2. For bug reports and feature requests, open issues. :bug:
|
|
3. For direct and quick help, you can [use Codementor](https://www.codementor.io/johnnyb). :rocket:
|
|
|
|
|
|
|
|
|
|
|
|
## :memo: Documentation
|
|
|
|
|
|
### `OArgv(options, prgm, stringify)`
|
|
Stringifies the options, building a command.
|
|
|
|
#### Params
|
|
|
|
- **Object** `options`: The options that should be stringified. If it contains the `_` field, then this should be an `Array` of strings, that representing values
|
|
that will be added at the end of the command. The `__` field is the separator (default: `" "`).
|
|
- **String** `prgm`: The program that executes the command (default: `""`).
|
|
- **Boolean** `stringify`: If `true`, the result array will be stringified (default: `false`).
|
|
|
|
#### Return
|
|
- **String|Array** The stringified arguments (if `stringify` is `true`) or the array of arguments.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## :yum: How to contribute
|
|
Have an idea? Found a bug? See [how to contribute][contributing].
|
|
|
|
|
|
## :sparkling_heart: Support my projects
|
|
I open-source almost everything I can, and I try to reply to everyone needing help using these projects. Obviously,
|
|
this takes time. You can integrate and use these projects in your applications *for free*! You can even change the source code and redistribute (even resell it).
|
|
|
|
However, if you get some profit from this or just want to encourage me to continue creating stuff, there are few ways you can do it:
|
|
|
|
|
|
- Starring and sharing the projects you like :rocket:
|
|
- [![Buy me a book][badge_amazon]][amazon]—I love books! I will remember you after years if you buy me one. :grin: :book:
|
|
- [![PayPal][badge_paypal]][paypal-donations]—You can make one-time donations via PayPal. I'll probably buy a ~~coffee~~ tea. :tea:
|
|
- [![Support me on Patreon][badge_patreon]][patreon]—Set up a recurring monthly donation and you will get interesting news about what I'm doing (things that I don't share with everyone).
|
|
- **Bitcoin**—You can send me bitcoins at this address (or scanning the code below): `1P9BRsmazNQcuyTxEqveUsnf5CERdq35V6`
|
|
|
|
![](https://i.imgur.com/z6OQI95.png)
|
|
|
|
|
|
Thanks! :heart:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## :dizzy: Where is this library used?
|
|
If you are using this library in one of your projects, add it in this list. :sparkles:
|
|
|
|
- `spawn-npm`
|
|
- `electroner`
|
|
- `git-status`
|
|
- `git-package-json`
|
|
- `engine-tools`
|
|
- `batjs`
|
|
- `babel-it`
|
|
- `initial-commit-date`
|
|
- `cobol`
|
|
- `share-term`
|
|
- `fortran`
|
|
- `cdnjs-importer`
|
|
- `@isysd/gpm`
|
|
- `bloggify-tools`
|
|
- `git-stats-importer`
|
|
- `gpm`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## :scroll: License
|
|
|
|
[MIT][license] © [Ionică Bizău][website]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[license]: /LICENSE
|
|
[website]: https://ionicabizau.net
|
|
[contributing]: /CONTRIBUTING.md
|
|
[docs]: /DOCUMENTATION.md
|
|
[badge_patreon]: https://ionicabizau.github.io/badges/patreon.svg
|
|
[badge_amazon]: https://ionicabizau.github.io/badges/amazon.svg
|
|
[badge_paypal]: https://ionicabizau.github.io/badges/paypal.svg
|
|
[badge_paypal_donate]: https://ionicabizau.github.io/badges/paypal_donate.svg
|
|
[patreon]: https://www.patreon.com/ionicabizau
|
|
[amazon]: http://amzn.eu/hRo9sIZ
|
|
[paypal-donations]: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=RVXDDLKKLQRJW
|