(List (Com {[LIT_CHARS set]} {[LIT_CHARS -eo]} {[LIT_CHARS pipefail]}) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub TRACE]}}) (Com {[LIT_CHARS set]} {[LIT_CHARS -x]}) ) (FunctionDef ensure-environment [] (List (= scope= flags=0 words=[{[LIT_CHARS FREE_MEMORY]}] bindings=[]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Preparing to install "][VarSub DOKKU_TAG][LIT_CHARS " from "][VarSub DOKKU_REPO][LIT_CHARS ...]]}) (If (List (Fork (Pipeline! (Com {[LIT_CHARS command]} {[LIT_CHARS -v]} {[LIT_CHARS apt-get]}) ) ) (Com < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "This installation script requires apt-get. For manual installation instructions, consult http://dokku.viewdocs.io/dokku/advanced-installation/"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS hostname]} {[LIT_CHARS -f]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "This installation script requires that you have a hostname set for the instance. Please set a hostname for 127.0.0.1 in your /etc/hosts"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('FREE_MEMORY', {[ComSub (Pipeline (Com {[LIT_CHARS grep]} {[LIT_CHARS MemTotal]} {[LIT_CHARS /proc/meminfo]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]) (If (DBracket {B2 BINARY_INT_LT {[DQ [VarSub FREE_MEMORY]]} {[LIT_CHARS 1003600]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "For dokku to build containers, it is strongly suggested that you have 1024 megabytes or more of free memory"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "If necessary, please consult this document to setup swap: http://dokku.viewdocs.io/dokku/advanced-installation/#vms-with-less-than-1gb-of-memory"]]}) ) ) ) ) (FunctionDef install-requirements [] (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--> Ensuring we have the proper dependencies"]]}) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS update]} {[LIT_CHARS -qq]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (If (DBracket {B2 BINARY_STRING_EQUAL {[ComSub (Com {[LIT_CHARS lsb_release]} {[LIT_CHARS -sr]})]} {[DQ [LIT_CHARS 12.04]]}}) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS -qq]} {[LIT_CHARS -y]} {[LIT_CHARS install]} {[LIT_CHARS python-software-properties]}) ) ) ) (FunctionDef install-dokku [] (If (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_BRANCH]}}) (Com {[LIT_CHARS install-dokku-from-source]} {[DQ [LIT_CHARS origin/][VarSub DOKKU_BRANCH]]}) (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_TAG]}}) (List (= scope= flags=0 words=[] bindings=[('DOKKU_SEMVER', {[DQ [VarSub DOKKU_TAG transform_ops=[PatSub {[LIT_CHARS v]} None do_all]]]})]) (= scope= flags=0 words=[] bindings=[('major', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub DOKKU_SEMVER]]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('minor', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub DOKKU_SEMVER]]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('patch', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub DOKKU_SEMVER]]}) (Com {[LIT_CHARS awk]} {[SQ ]}) )]})]) (If (AndOr OP_AND_IF (DBracket {B2 BINARY_INT_EQ {[DQ [VarSub major]]} {[DQ [LIT_CHARS 0]]}}) (AndOr OP_AND_IF (DBracket {B2 BINARY_INT_EQ {[DQ [VarSub minor]]} {[DQ [LIT_CHARS 3]]}}) (DBracket {B2 BINARY_INT_GE {[DQ [VarSub patch]]} {[DQ [LIT_CHARS 13]]}}) ) ) (List (Com {[LIT_CHARS install-dokku-from-package]} {[DQ [VarSub DOKKU_SEMVER]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--> Running post-install dependency installation"]]}) (Com {[LIT_CHARS dokku]} {[LIT_CHARS plugins-install-dependencies]}) ) (AndOr OP_AND_IF (DBracket {B2 BINARY_INT_EQ {[DQ [VarSub major]]} {[DQ [LIT_CHARS 0]]}}) (AndOr OP_AND_IF (DBracket {B2 BINARY_INT_GE {[DQ [VarSub minor]]} {[DQ [LIT_CHARS 4]]}}) (DBracket {B2 BINARY_INT_GE {[DQ [VarSub patch]]} {[DQ [LIT_CHARS 0]]}}) ) ) (List (Com {[LIT_CHARS install-dokku-from-package]} {[DQ [VarSub DOKKU_SEMVER]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--> Running post-install dependency installation"]]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS -E]} {[LIT_CHARS dokku]} {[LIT_CHARS plugin] [LIT_OTHER ":"] [LIT_CHARS install-dependencies]} {[LIT_CHARS --core]}) ) (ElseTrue) (Com {[LIT_CHARS install-dokku-from-source]} {[DQ [VarSub DOKKU_TAG]]}) ) ) (ElseTrue) (List (Com {[LIT_CHARS install-dokku-from-package]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--> Running post-install dependency installation"]]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS -E]} {[LIT_CHARS dokku]} {[LIT_CHARS plugin] [LIT_OTHER ":"] [LIT_CHARS install-dependencies]} {[LIT_CHARS --core]}) ) ) ) (FunctionDef install-dokku-from-source [] (List (= scope= flags=0 words=[] bindings=[('DOKKU_CHECKOUT', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS -qq]} {[LIT_CHARS -y]} {[LIT_CHARS install]} {[LIT_CHARS git]} {[LIT_CHARS make]} {[LIT_CHARS software-properties-common]}) (Com {[LIT_CHARS cd]} {[LIT_CHARS /root]}) (If (DBracket {B! {B1 UNARY_FILE_d {[LIT_CHARS /root/dokku]}}}) (Com {[LIT_CHARS git]} {[LIT_CHARS clone]} {[DQ [VarSub DOKKU_REPO]]} {[LIT_CHARS /root/dokku]}) ) (Com {[LIT_CHARS cd]} {[LIT_CHARS /root/dokku]}) (Com {[LIT_CHARS git]} {[LIT_CHARS fetch]} {[LIT_CHARS origin]}) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_CHECKOUT]}}) (Com {[LIT_CHARS git]} {[LIT_CHARS checkout]} {[DQ [VarSub DOKKU_CHECKOUT]]}) ) (Com {[LIT_CHARS make]} {[LIT_CHARS install]}) ) ) (FunctionDef install-dokku-from-package [] (List (= scope= flags=0 words=[] bindings=[('DOKKU_CHECKOUT', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('NO_INSTALL_RECOMMENDS', {[VarSub DOKKU_NO_INSTALL_RECOMMENDS test_op=VS_TEST_COLON_EQUALS {[DQ ]}]})]) (If (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_DOCKERFILE]}}) (= scope= flags=0 words=[] bindings=[('NO_INSTALL_RECOMMENDS', {[DQ [LIT_CHARS " --no-install-recommends "]]})]) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--> Initial apt-get update"]]}) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS update]} {[LIT_CHARS -qq]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS -qq]} {[LIT_CHARS -y]} {[LIT_CHARS install]} {[LIT_CHARS apt-transport-https]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--> Installing docker"]]}) (If (Pipeline (Com {[LIT_CHARS uname]} {[LIT_CHARS -r]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -q]} {[LIT_CHARS linode]}) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--> NOTE: Using Linode? Docker might complain about missing AUFS support."]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " See http://dokku.viewdocs.io/dokku/getting-started/install/linode/"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " Installation will continue in 10 seconds."]]}) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 10]}) ) ) (Pipeline (Com {[LIT_CHARS wget]} {[LIT_CHARS -nv]} {[LIT_CHARS -O]} {[LIT_CHARS -]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //get.docker.com/]}) (Com {[LIT_CHARS sh]}) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "--> Installing dokku"]]}) (Pipeline (Com {[LIT_CHARS wget]} {[LIT_CHARS -nv]} {[LIT_CHARS -O]} {[LIT_CHARS -]} {[LIT_CHARS https] [LIT_OTHER ":"] [LIT_CHARS //packagecloud.io/gpg.key]}) (Com {[LIT_CHARS apt-key]} {[LIT_CHARS add]} {[LIT_CHARS -]}) ) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "deb https://packagecloud.io/dokku/dokku/ubuntu/ trusty main"]]}) (Com {[LIT_CHARS tee]} {[LIT_CHARS /etc/apt/sources.list.d/dokku.list]}) ) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS update]} {[LIT_CHARS -qq]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_VHOST_ENABLE]}}) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "dokku dokku/vhost_enable boolean "][VarSub DOKKU_VHOST_ENABLE]]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS debconf-set-selections]}) ) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_WEB_CONFIG]}}) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "dokku dokku/web_config boolean "][VarSub DOKKU_WEB_CONFIG]]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS debconf-set-selections]}) ) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_HOSTNAME]}}) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "dokku dokku/hostname string "][VarSub DOKKU_HOSTNAME]]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS debconf-set-selections]}) ) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_SKIP_KEY_FILE]}}) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "dokku dokku/skip_key_file boolean "][VarSub DOKKU_SKIP_KEY_FILE]]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS debconf-set-selections]}) ) ) (AndOr OP_AND_IF (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_KEY_FILE]}}) (Pipeline (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "dokku dokku/key_file string "][VarSub DOKKU_KEY_FILE]]}) (Com {[LIT_CHARS sudo]} {[LIT_CHARS debconf-set-selections]}) ) ) (If (DBracket {B1 UNARY_STRING_n {[VarSub DOKKU_CHECKOUT]}}) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS -qq]} {[LIT_CHARS -y]} {[VarSub NO_INSTALL_RECOMMENDS]} {[LIT_CHARS install]} {[DQ [LIT_CHARS "dokku="][VarSub DOKKU_CHECKOUT]]}) (ElseTrue) (Com {[LIT_CHARS apt-get]} {[LIT_CHARS -qq]} {[LIT_CHARS -y]} {[VarSub NO_INSTALL_RECOMMENDS]} {[LIT_CHARS install]} {[LIT_CHARS dokku]}) ) ) ) (FunctionDef main [] (List (= scope= flags=1 words=[] bindings=[('DEBIAN_FRONTEND', {[LIT_CHARS noninteractive]})]) (= scope= flags=1 words=[] bindings=[('DOKKU_REPO', {[VarSub DOKKU_REPO test_op=VS_TEST_COLON_HYPHEN {[DQ [LIT_CHARS "https://github.com/dokku/dokku.git"]]}]})]) (Com {[LIT_CHARS ensure-environment]}) (Com {[LIT_CHARS install-requirements]}) (Com {[LIT_CHARS install-dokku]}) ) ) (Com {[LIT_CHARS main]} {[DQ [VarSub @]]}) )