(CommandList children: [ (C {(set)} {(-x)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:MOUNTPOINT) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [9] ) ] spids: [9] ) (AndOr children: [ (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$MOUNTPOINT"))} {(Lit_Other "]")}) (AndOr children: [(C {(echo)} {(DQ ("No mountpoint specified"))}) (C {(exit)} {(1)})] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$MOUNTPOINT"))}) (FuncDef name: mount_drive body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DEVS) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(find)} {(/dev)} {(-maxdepth)} {(1)} {(-type)} {(b)} {(KW_Bang "!")} {(-name)} {(SQ <"loop*">)} {(KW_Bang "!")} {(-name)} {(SQ <"nbd*">)} ) (C {(grep)} {(-v)} {(SQ <"[0-9]$">)}) (C {(sed)} {(SQ <"s@.*/dev/@@">)}) (C {(sort)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [62 112] ) ) } spids: [60] ) ] spids: [60] ) (ForEach iter_name: DEV iter_words: [{($ VSub_Name "$DEVS")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRIVE) op: Equal rhs: {(DQ (/dev/) (${ VSub_Name DEV))} spids: [129] ) ] spids: [129] ) (If arms: [ (if_arm cond: [ (SimpleCommand words: [{(sfdisk)} {(-d)} {(DQ (${ VSub_Name DRIVE))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [155] ) (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [158] ) ] ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DATA) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(sfdisk)} {(-J)} {(DQ ($ VSub_Name "$DRIVE"))}) (C {(jq)} {(-e)} {(-r)} { (SQ < ".partitiontable.partitions | map(select(.type==\"83\")) | .[0].node" > ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [170 190] ) } spids: [169] ) ] spids: [169] ) (If arms: [ (if_arm cond: [ (C {(Lit_Other "[")} {($ VSub_QMark "$?")} {(-eq)} {(0)} {(Lit_Other "]")} ) ] action: [ (AndOr children: [ (C {(mount)} {(DQ ($ VSub_Name "$DATA"))} {(DQ ($ VSub_Name "$MOUNTPOINT"))} ) (ControlFlow token: <ControlFlow_Return return> ) ] op_id: Op_DAmp ) ] spids: [-1 206] ) ] spids: [-1 224] ) ] spids: [-1 162] ) ] spids: [-1 227] ) ] spids: [126 230] ) spids: [122 -1] ) (C {(echo)} {(DQ ("WARNING: Failed to mount a persistent volume (is there one?)"))}) ] spids: [53] ) spids: [49 52] ) (C {(mount_drive)}) ] )