runfile v0.3.0
runfile
š§ A minimal alternative for GNU Makefile. You can use Shell commands, External tools in your OS directly and synchronously with Runfile.
Additionally it's brought with built-in ES2015 support through Babel.
Install
npm install -g runfile --production
Example
An example Runfile
task('clean', () => {
rm('-rf', 'testFolder')
rm('-rf', 'testSource')
})
// or run external tools
task('deploy', () => {
var message = argv._[1] || 'update'
exec('git add -A')
exec(`git commit -m "${message}"`)
exec('git push origin master')
})
task('default', ['clean', 'deploy'])
// alia `run path` to external command `echo $PATH`
// to print your $PATH info in console
// a short-hand for one-line task
alias('path', 'echo $PATH')
// or a sequence of commands
alias('async', [
'echo Hi',
'sleep 1',
'echo After 1s'
])
then in your favorite terminal:
run clean
run deploy
Run tasks synchronously
task('timeout', (callback) => {
setTimeout(() => {
console.log('timeout')
callback()
}, 3000)
})
task('log', ['timeout'], () => {
console.log(argv)
})
task('default', ['log'])
// then `run`
Run non-block synchronous task
Besides exec()
and built-in shell commands, async/await
also allows you to write async code in sync way (looks like).
import fs from 'fs'
function readFile (name) {
return new Promise(function (resolve, reject) {
fs.readFile(name, 'utf-8', function (err, data) {
if (err) {
reject(err)
}
resolve(data)
})
})
}
task('async', async () => {
let data = await readFile('Runfile')
console.log(data)
})
Trigger a task by hand
task('emit', () => {
emit('deploy')
})
Running Node executable inside ./node_modules/.bin
// just a short-hand for `./node_modules/.bin/webpack`
task('webpack', () => {
const webpack = npm('webpack --hot --inline')
if (process.platform === 'win32') {
exec(`set NODE_ENV=development && ${webpack}`)
} else {
exec('NODE_ENV=development ${webpack}')
}
})
Run task from global Runfile
Sometimes you repeat some common operations so you will always need a Runfile
stored globally to access from anywhere.
// find task `git` in `~\.runfile\Runfile`
run git -g
// alias
run :git
License
MIT.
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago