You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
2.2 KiB
133 lines
2.2 KiB
6 years ago
|
# bin-wrapper [![Build Status](http://img.shields.io/travis/kevva/bin-wrapper.svg?style=flat)](https://travis-ci.org/kevva/bin-wrapper)
|
||
|
|
||
|
> Binary wrapper that makes your programs seamlessly available as local dependencies
|
||
|
|
||
|
|
||
|
## Install
|
||
|
|
||
|
```
|
||
|
$ npm install --save bin-wrapper
|
||
|
```
|
||
|
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
```js
|
||
|
var BinWrapper = require('bin-wrapper');
|
||
|
|
||
|
var base = 'https://github.com/imagemin/gifsicle-bin/raw/master/vendor';
|
||
|
var bin = new BinWrapper()
|
||
|
.src(base + '/osx/gifsicle', 'darwin')
|
||
|
.src(base + '/linux/x64/gifsicle', 'linux', 'x64')
|
||
|
.src(base + '/win/x64/gifsicle.exe', 'win32', 'x64')
|
||
|
.dest(path.join('vendor'))
|
||
|
.use(process.platform === 'win32' ? 'gifsicle.exe' : 'gifsicle')
|
||
|
.version('>=1.71');
|
||
|
|
||
|
bin.run(['--version'], function (err) {
|
||
|
console.log('gifsicle is working');
|
||
|
});
|
||
|
```
|
||
|
|
||
|
Get the path to your binary with `bin.path()`:
|
||
|
|
||
|
```js
|
||
|
console.log(bin.path()); // => path/to/vendor/gifsicle
|
||
|
```
|
||
|
|
||
|
|
||
|
## API
|
||
|
|
||
|
### new BinWrapper(options)
|
||
|
|
||
|
Creates a new `BinWrapper` instance.
|
||
|
|
||
|
#### options.skipCheck
|
||
|
|
||
|
Type: `boolean`
|
||
|
Default: `false`
|
||
|
|
||
|
Whether to skip the binary check or not.
|
||
|
|
||
|
#### options.strip
|
||
|
|
||
|
Type: `number`
|
||
|
Default: `1`
|
||
|
|
||
|
Strip a number of leading paths from file names on extraction.
|
||
|
|
||
|
### .src(url, [os], [arch])
|
||
|
|
||
|
Adds a source to download.
|
||
|
|
||
|
#### url
|
||
|
|
||
|
Type: `string`
|
||
|
|
||
|
Accepts a URL pointing to a file to download.
|
||
|
|
||
|
#### os
|
||
|
|
||
|
Type: `string`
|
||
|
|
||
|
Tie the source to a specific OS.
|
||
|
|
||
|
#### arch
|
||
|
|
||
|
Type: `string`
|
||
|
|
||
|
Tie the source to a specific arch.
|
||
|
|
||
|
### .dest(dest)
|
||
|
|
||
|
#### dest
|
||
|
|
||
|
Type: `string`
|
||
|
|
||
|
Accepts a path which the files will be downloaded to.
|
||
|
|
||
|
### .use(bin)
|
||
|
|
||
|
#### bin
|
||
|
|
||
|
Type: `string`
|
||
|
|
||
|
Define which file to use as the binary.
|
||
|
|
||
|
### .path()
|
||
|
|
||
|
Returns the full path to your binary.
|
||
|
|
||
|
### .version(range)
|
||
|
|
||
|
#### range
|
||
|
|
||
|
Type: `string`
|
||
|
|
||
|
Define a [semver range](https://github.com/isaacs/node-semver#ranges) to check
|
||
|
the binary against.
|
||
|
|
||
|
### .run([cmd], callback)
|
||
|
|
||
|
Runs the search for the binary. If no binary is found it will download the file
|
||
|
using the URL provided in `.src()`.
|
||
|
|
||
|
#### cmd
|
||
|
|
||
|
Type: `array`
|
||
|
Default: `['--version']`
|
||
|
|
||
|
Command to run the binary with. If it exits with code `0` it means that the
|
||
|
binary is working.
|
||
|
|
||
|
#### callback(err)
|
||
|
|
||
|
Type: `function`
|
||
|
|
||
|
Returns nothing but a possible error.
|
||
|
|
||
|
|
||
|
## License
|
||
|
|
||
|
MIT © [Kevin Mårtensson](http://kevinmartensson.com)
|