(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 @]]} ) )