(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TOOLPATH) op:Equal rhs:{(/sbin)} spids:[18])] spids: [18] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DISKCOMMAND) op:Equal rhs:{(sgdisk)} spids:[24])] spids: [24] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ZAPFLAGS) op:Equal rhs:{(DQ (-Zog))} spids:[30])] spids: [30] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GUARDFILE) op: Equal rhs: {(/etc/ceph-disks-zapped)} spids: [35] ) ] spids: [35] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(dpkg)} {(-s)} {(gdisk)}] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[47])] ) (C {(grep)} {(-q)} {(Status.) (Lit_Other "*") (installed)}) ] negated: False ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ ("gdisk is installed"))})] spids: [-1 61] ) ] else_action: [ (C {(echo)} {(DQ ("install gdisk..."))}) (C {(apt-get)} {(install)} {(--allow-unauthenticated)} {(-y)} {(gdisk)}) ] spids: [70 90] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_z child: { (CommandSubPart command_list: (CommandList children: [(C {(which)} {($ VSub_Name "$DISKCOMMAND")})] ) left_token: <Left_Backtick "`"> spids: [98 102] ) } ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ ("can't find '") ($ VSub_Name "$DISKCOMMAND") ("'"))}) (C {(exit)})] spids: [-1 107] ) ] spids: [-1 121] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolUnary op_id:BoolUnary_f child:{($ VSub_Name "$GUARDFILE")}) ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mounted_whole_disks) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(df)} {(-kh)}) (C {(cut)} {(-f)} {(1)} {(-d) (SQ <" ">)}) (C {(tail)} {(-n) (Lit_Other "+") (2)}) (C {(grep)} {(SQ <"^/dev/sd">)}) (C {(sed)} {(SQ <"s/[0-9]/|/">)}) (C {(sort)} {(-u)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [148 195] ) } spids: [147] ) ] spids: [147] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mounted_disk_regex) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (ForEach iter_name: disk iter_words: [{($ VSub_Name "$mounted_whole_disks")}] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (C {(echo)} {(-n)} {($ VSub_Name "$disk")}) terminator: <Op_Semi ";"> ) ] spids: [213 222] ) spids: [209 211] ) ] ) left_token: <Left_CommandSub "$("> spids: [203 223] ) } spids: [202] ) ] spids: [202] ) (ForEach iter_name: disk iter_words: [ { (CommandSubPart command_list: (CommandList children: [(C {(ls)} {(/dev/sd) (Lit_Other "[") (a-z) (Lit_Other "]")})] ) left_token: <Left_CommandSub "$("> spids: [233 240] ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$disk"))}) (C {(egrep)} {(-q)} { (DQ (BracedVarSub token: <VSub_Name mounted_disk_regex> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 0)}) length: (ArithUnary op_id: Node_UnaryMinus child: (ArithWord w:{(Lit_Digits 1)}) ) ) spids: [263 270] ) ) } ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("#### Overwriting ") ($ VSub_Name "$disk") (" with ") ($ VSub_Name "$DISKCOMMAND") (" ") ($ VSub_Name "$ZAPFLAGS") ) } ) (C {($ VSub_Name "$TOOLPATH") (/) ($ VSub_Name "$DISKCOMMAND")} {($ VSub_Name "$ZAPFLAGS")} {($ VSub_Name "$disk")} ) ] spids: [-1 274] ) ] else_action: [ (C {(echo)} {(DQ ("#### Skipping mounted disk ") ($ VSub_Name "$disk"))}) ] spids: [298 309] ) ] spids: [243 312] ) spids: [232 241] ) ] spids: [-1 140] ) ] else_action: [(C {(echo)} {(DQ ("disks look zapped already"))})] spids: [314 323] ) (C {(touch)} {(/etc/ceph-disks-zapped)}) ] )