(CommandList children: [ (C {(hash)} {(-r)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PROG) op: Equal rhs: { (BracedVarSub token: <VSub_Number 0> suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)}) spids: [9 14] ) } spids: [8] ) ] spids: [8] ) (FuncDef name: usage body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:ret) op: Equal rhs: { (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(0)}) spids: [26 30] ) } spids: [25] ) ] spids: [23] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {($ VSub_Name "$ret")} {(-eq)} {(0)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [ (SimpleCommand words: [{(exec)}] redirects: [(Redir op_id:Redir_GreatAnd fd:3 arg_word:{(1)} spids:[52])] ) ] spids: [-1 47] ) ] else_action: [ (SimpleCommand words: [{(exec)}] redirects: [(Redir op_id:Redir_GreatAnd fd:3 arg_word:{(2)} spids:[61])] ) ] spids: [56 65] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ (${ VSub_Name PROG) (" path-to-keyfile\n"))} do_expansion: True here_end: EoF was_filled: True spids: [70] ) (Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(3)} spids:[73]) ] ) (SimpleCommand words: [{(exec)}] redirects: [(Redir op_id:Redir_GreatAnd fd:3 arg_word:{(-)} spids:[83])] ) (C {(exit)} {(${ VSub_Name ret)}) ] spids: [20] ) spids: [17 20] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:keypath) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {($ VSub_Name "$HOME") (Lit_Slash /) (.ssh) (Lit_Slash /) (id_rsa.bcpc)} ) spids: [98 106] ) ) } spids: [96] ) ] spids: [96] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:distroot) op: Equal rhs: {(/var/www/cobbler/pub/keys)} spids: [109] ) ] spids: [109] ) (Pipeline children: [(C {(yes)}) (C {(ssh-keygen)} {(-N)} {(SQ )} {(-f)} {(DQ (${ VSub_Name keypath))})] negated: False ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} {(DQ (${ VSub_Name SUDO_UID))} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) ] action: [(C {(chown)} {(DQ (${ VSub_Name SUDO_UID))} {(DQ (${ VSub_Name keypath))})] spids: [-1 148] ) ] spids: [-1 165] ) (C {(install)} {(-D)} {(DQ (${ VSub_Name keypath) (.pub))} {(DQ (${ VSub_Name distroot) (/root))}) ] )