(CommandList children: [ (C {(set)} {(-o)} {(errexit)}) (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (FuncDef name: check_for_ppa body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:repo) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [76] ) ] spids: [74] ) (C {(grep)} {(-qsw)} {($ VSub_Name "$repo")} {(/etc/apt/sources.list)} {(/etc/apt/sources.list.d/) (Lit_Other "*")} ) ] spids: [71] ) spids: [65 70] ) (FuncDef name: package_status body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:pkgname) op: Equal rhs: {($ VSub_Number "$1")} spids: [107] ) ] spids: [105] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:pkgstatus) op:Equal spids:[113])] spids: [111] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgstatus) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(dpkg-query)} {(-W)} {(--showformat) (Lit_Other "=") (SQ <"${Status}\\n">)} {(DQ (${ VSub_Name pkgname))} ) ] ) left_token: <Left_CommandSub "$("> spids: [117 133] ) } spids: [116] ) ] spids: [116] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {(DQ (${ VSub_Name pkgstatus))} right: {(DQ ("install ok installed"))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("Missing package ") (${ VSub_Name pkgname))}) (C {(sudo)} {(apt-get)} {(--force-yes)} {(--yes)} {(install)} {(${ VSub_Name pkgname)}) ] spids: [-1 155] ) ] spids: [-1 183] ) ] spids: [102] ) spids: [96 101] ) (FuncDef name: gather_installation_reqs body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children:[(C {(check_for_ppa)} {(DQ (juju))})] negated:True) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} {(DQ ("... Detected missing dependencies.. running"))}) (C {(echo)} {(DQ ("... add-apt-repository ppa:juju/stable"))}) (C {(sudo)} {(add-apt-repository)} {(-y)} {(ppa) (Lit_Other ":") (juju/stable)}) (C {(sudo)} {(apt-get)} {(update)}) ] spids: [-1 208] ) ] spids: [-1 243] ) (C {(package_status)} {(SQ <juju>)}) (C {(package_status)} {(SQ <charm-tools>)}) ] spids: [194] ) spids: [188 193] ) ] )