Socket
Socket
Sign inDemoInstall

blackfish

Package Overview
Dependencies
164
Maintainers
2
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.3 to 0.0.4

2

package.json
{
"name": "blackfish",
"version": "0.0.3",
"version": "0.0.4",
"description": "docker* cli extensions",

@@ -5,0 +5,0 @@ "main": "src/index.js",

@@ -7,3 +7,3 @@ #!/usr/bin/env node

var path = require('path')
var { BlackfishError, BlackfishCliError } = require('./errors')
var { BlackfishError, BlackfishCliError, BlackfishShutdown } = require('./errors')

@@ -22,52 +22,52 @@ var mod = {

async function run () {
try {
var cli = meow(`
Usage
$ bf
;['uncaughtException', 'unhandledRejection'].forEach(evt => {
process.on(evt, err => {
if (err instanceof BlackfishError) {
console.error(err.message) // no stack
} else if (err instanceof BlackfishCliError) {
console.error(err.message) // no stack, and help
console.error(cli.help)
} else if (err instanceof BlackfishShutdown) {
debug('shutting down')
} else {
console.error(err)
}
process.exit(1)
})
})
var cli = meow(`
Usage
$ bf
Options
--compose, -c docker-compose
--interactive, -i interactive docker-compose
--files, -f compose files
Options
--compose, -c docker-compose
--interactive, -i interactive docker-compose
--files, -f compose files
Examples
$ bf -ci -- up
$ bf -ci -f docker-compose.yml,docker-compose.dev.yml -- up
`, {
flags: {
interactive: {
type: 'boolean',
alias: 'i'
},
files: {
type: 'string',
alias: 'f'
},
compose: {
type: 'boolean',
alias: 'c'
}
Examples
$ bf -ci -- up
$ bf -ci -f docker-compose.yml,docker-compose.dev.yml -- up
`, {
flags: {
interactive: {
type: 'boolean',
alias: 'i'
},
files: {
type: 'string',
alias: 'f'
},
compose: {
type: 'boolean',
alias: 'c'
}
})
if (cli.input.length === 0) throw new BlackfishError('no docker[-compose] command provided')
if (cli.flags.files) cli.flags.files = mod.parseFilenames(cli.flags.files)
debug('running main')
await bf.main(cli)
} catch (err) {
if (err instanceof BlackfishError) {
console.error(err.message)
process.exit(1)
} else if (err instanceof BlackfishCliError) {
console.error(err.message)
console.error(cli.help)
process.exit(1)
}
throw err
}
})
if (cli.input.length === 0) throw new BlackfishCliError('no docker[-compose] command provided')
if (cli.flags.files) cli.flags.files = mod.parseFilenames(cli.flags.files)
debug('running main')
await bf.main(cli)
}
if (require.main === module) run()
if (require.main === module) {
run()
}
module.exports = mod
class BlackfishError extends Error {}
class BlackfishCliError extends Error {}
class BlackfishShutdown extends Error {}
module.exports = {
BlackfishError,
BlackfishCliError
BlackfishCliError,
BlackfishShutdown
}

@@ -9,3 +9,4 @@ // bf/blackfish <files>

var execa = require('execa')
var { BlackfishCliError } = require('./errors')
var os = require('os')
var { BlackfishError, BlackfishCliError, BlackfishShutdown } = require('./errors')

@@ -15,17 +16,43 @@ module.exports = {

debug('preparing to boot compose')
var { files } = opts.flags
var { files, interactive } = opts.flags
if (!files) files = await composeFiles.get()
debug(`compose files: ${files.join(', ')}`)
var superCompose = await composeFiles.merge(files)
var prompt = new Prompt({
name: 'images',
message: 'run the following docker-compose services:',
radio: true,
choices: Object.keys(superCompose.services).sort(),
default: Object.keys(superCompose.services).sort()
})
var services = await prompt.run()
prompt.end(false)
superCompose.services = pick(superCompose.services, services)
if (interactive) {
var prompt = new Prompt({
name: 'images',
message: 'run the following docker-compose services:',
radio: true,
choices: Object.keys(superCompose.services).sort(),
default: Object.keys(superCompose.services).sort()
})
var services = await prompt.run()
await prompt.ui.close()
prompt.end(false)
superCompose.services = pick(superCompose.services, services)
}
if (!Object.keys(superCompose.services).length) throw new BlackfishError('no docker compose services found')
var file = await composeFiles.writeBlackfishCompose(superCompose)
await execa('docker-compose', ['-f', file, ...opts.input], { stdio: 'inherit' })
// var child = execa('docker-compose', ['-f', file, ...opts.input], { stdio: 'inherit' })
var child = execa.shell(['docker-compose', ...['-f', file, ...opts.input]].join(' '), { stdio: 'inherit' })
var handleSignal = async signal => {
debug(`received signal: ${signal}`)
try {
var isWin = !!os.platform().match(/^win/)
debug(`isWin?: ${isWin}`)
isWin
? child.kill(signal)
: await execa.shell(`kill -s ${signal.replace('SIG', '')} ${child.pid}`, {stdio: 'inherit'})
} catch (err) {
console.error(err)
}
try {
await child
} finally {
throw new BlackfishShutdown() // eslint-disable-line
}
}
process.addListener('SIGINT', handleSignal)
await child
process.removeListener('SIGINT', handleSignal)
},

@@ -32,0 +59,0 @@ main (opts) {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc