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 --productionExample
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 deployRun 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 :gitLicense
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