UNPKG

809 BJavaScriptView Raw
1'use strict'
2
3let cli = require('heroku-cli-util')
4
5function buildCommand (args) {
6 if (args.length === 1) {
7 // do not add quotes around arguments if there is only one argument
8 // `heroku run "rake test"` should work like `heroku run rake test`
9 return args[0]
10 }
11 let cmd = ''
12 for (let arg of args) {
13 if (arg.indexOf(' ') !== -1 || arg.indexOf('"') !== -1) {
14 arg = '"' + arg.replace(/"/g, '\\"') + '"'
15 }
16 cmd = cmd + ' ' + arg
17 }
18 return cmd.trim()
19}
20
21function buildEnvFromFlag (flag) {
22 let env = {}
23 for (let v of flag.split(';')) {
24 let m = v.match(/^\s*([\w.-]+)\s*=\s*(.*)?\s*$/)
25 if (m) env[m[1]] = m[2]
26 else cli.warn(`env flag ${v} appears invalid. Avoid using ';' in values.`)
27 }
28 return env
29}
30
31module.exports = {
32 buildCommand,
33 buildEnvFromFlag
34}