Skip to content

Instantly share code, notes, and snippets.

@FLYBYME
Created January 2, 2017 22:14
Show Gist options
  • Save FLYBYME/a6e9cf6d5efaacc1342e0c212b27d828 to your computer and use it in GitHub Desktop.
Save FLYBYME/a6e9cf6d5efaacc1342e0c212b27d828 to your computer and use it in GitHub Desktop.
+ [[ -d /tmp/app ]]
++ ls -A /tmp/app
+ [[ -n .heroku
.profile.d
.project
.release
Dockerfile
Procfile
a
node_modules
package.json
server.js ]]
+ rm -rf /app
+ cp -r /tmp/app /app
+ cmd-export paths
+ declare 'desc=Exports a function as a command'
+ declare fn=paths as=paths
+ local ns=
++ cmd-list-ns
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ grep -v :
++ sort
+ CMDS["$ns:${as/#$ns-/}"]=paths
+ cmd-export version
+ declare 'desc=Exports a function as a command'
+ declare fn=version as=version
+ local ns=
++ cmd-list-ns
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ grep -v :
++ echo :paths
++ sort
+ CMDS["$ns:${as/#$ns-/}"]=version
+ cmd-export herokuish-test test
+ declare 'desc=Exports a function as a command'
+ declare fn=herokuish-test as=test
+ local ns=
++ cmd-list-ns
++ for k in '"${!CMDS[@]}"'
++ echo :version
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'++ sort
++ echo :paths++
grep -v :
+ CMDS["$ns:${as/#$ns-/}"]=herokuish-test
+ cmd-export-ns buildpack 'Use and install buildpacks'
+ declare ns=buildpack 'desc=Use and install buildpacks'
+ eval 'buildpack() {
declare desc="Use and install buildpacks"
cmd-ns buildpack "$@";
}'
+ cmd-export buildpack
+ declare 'desc=Exports a function as a command'
+ declare fn=buildpack as=buildpack
+ local ns=
++ cmd-list-ns
++ grep -v :
++ for k in '"${!CMDS[@]}"'
++ echo :version
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ sort
+ CMDS["$ns:${as/#$ns-/}"]=buildpack
+ CMDS["$1"]=buildpack
+ cmd-export buildpack-build
+ declare 'desc=Exports a function as a command'
+ declare fn=buildpack-build as=buildpack-build
+ local ns=
++ cmd-list-ns
++ for k in '"${!CMDS[@]}"'
++ ++ echo :versiongrep
-v ++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ ++ echo :testsort
++ for k in '"${!CMDS[@]}"'
:
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
+ for n in '$(cmd-list-ns)'
+ echo buildpack-build
+ grep '^buildpack-'
+ ns=buildpack
+ CMDS["$ns:${as/#$ns-/}"]=buildpack-build
+ cmd-export buildpack-install
+ declare 'desc=Exports a function as a command'
+ declare fn=buildpack-install as=buildpack-install
+ local ns=
++ cmd-list-ns
++ ++ grep for k in -v '"${!CMDS[@]}"':
++ echo :version
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ sort++
echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:build
+ for n in '$(cmd-list-ns)'
+ echo buildpack-install
+ grep '^buildpack-'
+ ns=buildpack
+ CMDS["$ns:${as/#$ns-/}"]=buildpack-install
+ cmd-export buildpack-list
+ declare 'desc=Exports a function as a command'
+ declare fn=buildpack-list as=buildpack-list
+ local ns=
++ cmd-list-ns
++ for k in '"${!CMDS[@]}"'++ grep
-v :
++ echo :version
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:install
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:build
++ sort
+ for n in '$(cmd-list-ns)'
+ echo buildpack-list
+ grep '^buildpack-'
+ ns=buildpack
+ CMDS["$ns:${as/#$ns-/}"]=buildpack-list
+ cmd-export-ns slug 'Manage application slugs'
+ declare ns=slug 'desc=Manage application slugs'
+ eval 'slug() {
declare desc="Manage application slugs"
cmd-ns slug "$@";
}'
+ cmd-export slug
+ declare 'desc=Exports a function as a command'
+ declare fn=slug as=slug
+ local ns=
++ cmd-list-ns
++ ++ for k in '"${!CMDS[@]}"'
grep -v :
++ echo :version++ sort
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:install
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:list
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:build
+ for n in '$(cmd-list-ns)'
+ grep '^buildpack-'
+ echo slug
+ CMDS["$ns:${as/#$ns-/}"]=slug
+ CMDS["$1"]=slug
+ cmd-export slug-import
+ declare 'desc=Exports a function as a command'
+ declare fn=slug-import as=slug-import
+ local ns=
++ cmd-list-ns
++ ++ for k in '"${!CMDS[@]}"'grep -v :
++ sort
++ echo :version
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:install
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo slug
++ for k in '"${!CMDS[@]}"'
++ echo :slug
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:list
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:build
+ for n in '$(cmd-list-ns)'
+ echo slug-import
+ grep '^buildpack-'
+ for n in '$(cmd-list-ns)'
+ echo slug-import
+ grep '^slug-'
+ ns=slug
+ CMDS["$ns:${as/#$ns-/}"]=slug-import
+ cmd-export slug-generate
+ declare 'desc=Exports a function as a command'
+ declare fn=slug-generate as=slug-generate
+ local ns=
++ cmd-list-ns
++ ++ grep -v for k in :'"${!CMDS[@]}"'
++ echo :version
++ for k in '"${!CMDS[@]}"'
++ echo ++ sort
:help
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:install
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo slug
++ for k in '"${!CMDS[@]}"'
++ echo :slug
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo slug:import
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:list
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:build
+ for n in '$(cmd-list-ns)'
+ echo slug-generate
+ grep '^buildpack-'
+ for n in '$(cmd-list-ns)'
+ echo slug-generate
+ grep '^slug-'
+ ns=slug
+ CMDS["$ns:${as/#$ns-/}"]=slug-generate
+ cmd-export slug-export
+ declare 'desc=Exports a function as a command'
+ declare fn=slug-export as=slug-export
+ local ns=
++ cmd-list-ns
++ ++ for k in grep -v ++ :sort
'"${!CMDS[@]}"'
++ echo :version
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:install
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo slug:generate
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo slug
++ for k in '"${!CMDS[@]}"'
++ echo :slug
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo slug:import
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:list
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:build
+ for n in '$(cmd-list-ns)'
+ echo slug-export
+ grep '^buildpack-'
+ for n in '$(cmd-list-ns)'
+ echo slug-export
+ grep '^slug-'
+ ns=slug
+ CMDS["$ns:${as/#$ns-/}"]=slug-export
+ cmd-export-ns procfile 'Use Procfiles and run app commands'
+ declare ns=procfile 'desc=Use Procfiles and run app commands'
+ eval 'procfile() {
declare desc="Use Procfiles and run app commands"
cmd-ns procfile "$@";
}'
+ cmd-export procfile
+ declare 'desc=Exports a function as a command'
+ declare fn=procfile as=procfile
+ local ns=
++ cmd-list-ns
++ for k in '"${!CMDS[@]}"'
++ grep ++ -v echo ::version
++ sort
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:install
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo slug:generate
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo slug
++ for k in '"${!CMDS[@]}"'
++ echo :slug
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo slug:import
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:list
++ for k in '"${!CMDS[@]}"'
++ echo slug:export
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:build
+ for n in '$(cmd-list-ns)'
+ echo procfile
+ grep '^buildpack-'
+ for n in '$(cmd-list-ns)'
+ echo procfile
+ grep '^slug-'
+ CMDS["$ns:${as/#$ns-/}"]=procfile
+ CMDS["$1"]=procfile
+ cmd-export procfile-start
+ declare 'desc=Exports a function as a command'
+ declare fn=procfile-start as=procfile-start
+ local ns=
++ cmd-list-ns
++ for k in '"${!CMDS[@]}"'
++ echo :version
++ for k in '"${!CMDS[@]}"'++
grep ++ -v echo :
:help
++ for k in '"${!CMDS[@]}"'
++ ++ echo sort:procfile
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:install
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo slug:generate
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo slug
++ for k in '"${!CMDS[@]}"'
++ echo :slug
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo slug:import
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:list
++ for k in '"${!CMDS[@]}"'
++ echo slug:export
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:build
++ for k in '"${!CMDS[@]}"'
++ echo procfile
+ for n in '$(cmd-list-ns)'
+ echo procfile-start
+ grep '^buildpack-'
+ for n in '$(cmd-list-ns)'
+ echo procfile-start
+ grep '^procfile-'
+ ns=procfile
+ for n in '$(cmd-list-ns)'
+ echo procfile-start
+ grep '^slug-'
+ CMDS["$ns:${as/#$ns-/}"]=procfile-start
+ cmd-export procfile-exec
+ declare 'desc=Exports a function as a command'
+ declare fn=procfile-exec as=procfile-exec
+ local ns=
++ cmd-list-ns
++ grep -v :
++ for k in '"${!CMDS[@]}"'
++ echo :version
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ echo :procfile
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:install
++ for k in '"${!CMDS[@]}"'
++ echo procfile:start
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo slug:generate
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo slug
++ for k in '"${!CMDS[@]}"'
++ echo :slug
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo slug:import
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:list
++ for k in '"${!CMDS[@]}"'
++ echo slug:export
++ for k in '"${!CMDS[@]}"'++
sort++ echo buildpack:build
++ for k in '"${!CMDS[@]}"'
++ echo procfile
+ for n in '$(cmd-list-ns)'
+ echo procfile-exec
+ grep '^buildpack-'
+ for n in '$(cmd-list-ns)'
+ echo procfile-exec
+ grep '^procfile-'
+ ns=procfile
+ for n in '$(cmd-list-ns)'
+ echo procfile-exec
+ grep '^slug-'
+ CMDS["$ns:${as/#$ns-/}"]=procfile-exec
+ cmd-export procfile-parse
+ declare 'desc=Exports a function as a command'
+ declare fn=procfile-parse as=procfile-parse
+ local ns=
++ cmd-list-ns
++ grep -v :
++ for k in '"${!CMDS[@]}"'
++ sort
++ echo :version
++ for k in '"${!CMDS[@]}"'
++ echo :help
++ for k in '"${!CMDS[@]}"'
++ echo :procfile
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:install
++ for k in '"${!CMDS[@]}"'
++ echo procfile:start
++ for k in '"${!CMDS[@]}"'
++ echo :test
++ for k in '"${!CMDS[@]}"'
++ echo slug:generate
++ for k in '"${!CMDS[@]}"'
++ echo :buildpack
++ for k in '"${!CMDS[@]}"'
++ echo :paths
++ for k in '"${!CMDS[@]}"'
++ echo slug
++ for k in '"${!CMDS[@]}"'
++ echo :slug
++ for k in '"${!CMDS[@]}"'
++ echo buildpack
++ for k in '"${!CMDS[@]}"'
++ echo slug:import
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:list
++ for k in '"${!CMDS[@]}"'
++ echo slug:export
++ for k in '"${!CMDS[@]}"'
++ echo buildpack:build
++ for k in '"${!CMDS[@]}"'
++ echo procfile:exec
++ for k in '"${!CMDS[@]}"'
++ echo procfile
+ for n in '$(cmd-list-ns)'
+ echo procfile-parse
+ grep '^buildpack-'
+ for n in '$(cmd-list-ns)'
+ echo procfile-parse
+ grep '^procfile-'
+ ns=procfile
+ for n in '$(cmd-list-ns)'
+ echo procfile-parse
+ grep '^slug-'
+ CMDS["$ns:${as/#$ns-/}"]=procfile-parse
+ case "$SELF" in
+ cmd-ns '' procfile start web
+ local ns=
+ shift
+ local cmd=procfile
+ shift
+ local status=0
+ cmd-list ''
+ declare 'desc=Lists available commands'
+ declare ns=
+ grep '^procfile$'
+ cmd-list-keys ''
+ declare ns=
+ for k in '"${!CMDS[@]}"'
+ echo :version
+ for k in '"${!CMDS[@]}"'
+ echo :help
+ for k in '"${!CMDS[@]}"'
+ echo :procfile
+ for k in '"${!CMDS[@]}"'
+ + echo sed s/://
buildpack:install
+ for k in '"${!CMDS[@]}"'
+ echo procfile:start
+ for k in '"${!CMDS[@]}"'
+ echo :test
+ for k in '"${!CMDS[@]}"'
+ echo slug:generate
+ for k in '"${!CMDS[@]}"'
+ echo :buildpack
+ for k in '"${!CMDS[@]}"'
+ echo :paths
+ for k in '"${!CMDS[@]}"'
+ echo slug
+ for k in '"${!CMDS[@]}"'
+ + echo grep '^:'
procfile:parse
+ for k in '"${!CMDS[@]}"'
+ echo :slug
+ for k in '"${!CMDS[@]}"'
+ echo buildpack
+ for k in '"${!CMDS[@]}"'
+ echo + slug:import
+ for k in '"${!CMDS[@]}"'
+ echo buildpack:list
+ for k in '"${!CMDS[@]}"'
+ echo slug:export
+ for k in '"${!CMDS[@]}"'
+ echo buildpack:build
+ for k in '"${!CMDS[@]}"'
+ echo procfile:exec
+ for k in '"${!CMDS[@]}"'
+ echo procfile
sort
+ procfile start web
+ declare 'desc=Use Procfiles and run app commands'
+ cmd-ns procfile start web
+ local ns=procfile
+ shift
+ local cmd=start
+ shift
+ local status=0
+ cmd-list procfile
+ grep '^start$'
+ declare 'desc=Lists available commands'
+ declare ns=procfile
+ cmd-list-keys procfile
+ declare + sed s/procfile://
ns=procfile
+ for k in '"${!CMDS[@]}"'
+ echo :version
+ for k in '"${!CMDS[@]}"'
+ echo :help
+ + sortfor k in
'"${!CMDS[@]}"'
+ echo :procfile
+ + for k in '"${!CMDS[@]}"'
+ echo buildpack:install
grep '^procfile:'+
for k in '"${!CMDS[@]}"'
+ echo procfile:start
+ for k in '"${!CMDS[@]}"'
+ echo :test
+ for k in '"${!CMDS[@]}"'
+ echo slug:generate
+ for k in '"${!CMDS[@]}"'
+ echo :buildpack
+ for k in '"${!CMDS[@]}"'
+ echo :paths
+ for k in '"${!CMDS[@]}"'
+ echo slug
+ for k in '"${!CMDS[@]}"'
+ echo procfile:parse
+ for k in '"${!CMDS[@]}"'
+ echo :slug
+ for k in '"${!CMDS[@]}"'
+ echo buildpack
+ for k in '"${!CMDS[@]}"'
+ echo slug:import
+ for k in '"${!CMDS[@]}"'
+ echo buildpack:list
+ for k in '"${!CMDS[@]}"'
+ echo slug:export
+ for k in '"${!CMDS[@]}"'
+ echo buildpack:build
+ for k in '"${!CMDS[@]}"'
+ echo procfile:exec
+ for k in '"${!CMDS[@]}"'
+ echo procfile
+ procfile-start web
+ declare 'desc=Run process type command from Procfile through exec'
+ declare type=web
++ procfile-parse web
++ declare 'desc=Get command string for a process type from Procfile'
++ declare type=web
++ cat /app/Procfile
++ yaml-esque-get web
++ declare 'desc=Get key value from colon-separated structure'
++ declare key=web
++ local inputkey
++ local cmd
+++ cat
++ read line
++ [[ web: node server.js =~ ^#.* ]]
++ inputkey=web
++ cmd=' node server.js'
++ [[ web == \w\e\b ]]
++ echo ' node server.js'
++ read line
++ [[ -n '' ]]
+ procfile-exec ' node server.js'
+ declare 'desc=Run as unprivileged user with Heroku-like env'
+ [[ -n '' ]]
+ detect-unprivileged
++ stat -c %U /app
+ unprivileged_user=root
+ unprivileged_group=root
+ procfile-setup-home
+ export HOME=/app
+ HOME=/app
+ usermod --home /app root
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment