Skip to content

vmarkovtsev/bin-wrapper

 
 

Repository files navigation

bin-wrapper Build Status

Binary wrapper that makes your programs seamlessly available as local dependencies

Install

$ npm install --save bin-wrapper

Usage

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():

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 to check the binary against.

.run([cmd], cb)

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.

cb(err)

Type: function

Returns nothing but a possible error.

License

MIT © Kevin Mårtensson

About

Binary wrapper that makes your programs seamlessly available as local dependencies

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%