(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:QEMU_IMAGE) op: assign_op.Equal rhs: {(linuxkit/qemu) (Id.Lit_Other ':') (4563d58e97958f4941fbef9e74cabc08bd402144) (Id.Lit_Splice '@sha256') (Id.Lit_Other ':') (b2db0b13ba1cbb6b48218f088fe0a4d860e1db2c4c6381b5416536f48a612230) } spids: [4] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-t)} {(0)} {(-a)} {(-z)} {(DQ ($ Id.VSub_Number '$1'))} {(Id.Lit_RBracket ']')} ) ] action: [ (C {(docker)} {(run)} {(-i)} {(--rm)} {(DQ ($ Id.VSub_DollarName '$QEMU_IMAGE'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:56) arg_word: {($ Id.VSub_QMark '$?')} ) ] spids: [16 36] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILE) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [63] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILE2) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [66] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CMDLINE) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [69] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$FILE'))} {(Id.Lit_RBracket ']')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$PWD') (/moby))} spids: [84] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BASE) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:92) command_list: (command.CommandList children: [(C {(basename)} {(DQ ($ Id.VSub_DollarName '$FILE'))})] ) ) } spids: [91] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:101) command_list: (command.CommandList children: [(C {(dirname)} {(DQ ($ Id.VSub_DollarName '$FILE'))})] ) ) } spids: [100] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-f)} {(DQ ($ Id.VSub_DollarName '$FILE'))} {(-a)} {(-f)} {($ Id.VSub_DollarName '$DIR') (/) ($ Id.VSub_DollarName '$BASE') (-initrd.img)} {(-a)} {(-f)} {($ Id.VSub_DollarName '$DIR') (/) ($ Id.VSub_DollarName '$BASE') (-bzImage)} {(Id.Lit_RBracket ']')} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$DIR') (/) ($ Id.VSub_DollarName '$BASE') (-initrd.img)} spids: [144] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILE2) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$DIR') (/) ($ Id.VSub_DollarName '$BASE') (-bzImage)} spids: [151] ) ] ) ] spids: [109 141] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$FILE'))}) (C {(grep)} {(-q)} {(SQ (Token id:Id.Lit_Chars val:'^/' span_id:173))}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$PWD') (/) ($ Id.VSub_DollarName '$FILE'))} spids: [178] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$FILE2'))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$FILE2'))}) (C {(grep)} {(-q)} {(SQ (Token id:Id.Lit_Chars val:'^/' span_id:215))}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FILE2) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$PWD') (/) ($ Id.VSub_DollarName '$FILE2'))} spids: [220] ) ] ) ] ) ] spids: [185 199] ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$CMDLINE'))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$CMDLINE'))}) (C {(grep)} {(-q)} {(SQ (Token id:Id.Lit_Chars val:'^/' span_id:259))}) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CMDLINE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$PWD') (/) ($ Id.VSub_DollarName '$CMDLINE'))} spids: [264] ) ] ) ] ) ] spids: [229 243] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-c)} {(DQ (/dev/kvm))} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:286) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DEVKVM) op: assign_op.Equal rhs: {(DQ ('--device=/dev/kvm'))} spids: [291] ) ] ) ] spids: [274 288] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BASE) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:299) command_list: (command.CommandList children: [(C {(basename)} {(DQ ($ Id.VSub_DollarName '$FILE'))})] ) ) } spids: [298] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MOUNTS) op: assign_op.Equal rhs: {(DQ ('-v ') ($ Id.VSub_DollarName '$FILE') (':/tmp/') ($ Id.VSub_DollarName '$BASE'))} spids: [307] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BASE2) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:316) command_list: (command.CommandList children: [(C {(basename)} {(DQ ($ Id.VSub_DollarName '$FILE2'))})] ) ) } spids: [315] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BASE3) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:325) command_list: (command.CommandList children: [(C {(basename)} {(DQ ($ Id.VSub_DollarName '$CMDLINE'))})] ) ) } spids: [324] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$FILE2'))} {(Id.Lit_RBracket ']')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MOUNTS) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$MOUNTS') (' -v ') ($ Id.VSub_DollarName '$FILE2') (':/tmp/') ($ Id.VSub_DollarName '$BASE2') ) } spids: [348] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} {(DQ ($ Id.VSub_DollarName '$CMDLINE'))} {(Id.Lit_RBracket ']')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MOUNTS) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$MOUNTS') (' -v ') ($ Id.VSub_DollarName '$CMDLINE') (':/tmp/') ($ Id.VSub_DollarName '$BASE3') ) } spids: [371] ) ] ) ] ) (C {(docker)} {(run)} {(-it)} {(--rm)} {($ Id.VSub_DollarName '$MOUNTS')} {($ Id.VSub_DollarName '$DEVKVM')} {(DQ ($ Id.VSub_DollarName '$QEMU_IMAGE'))} ) ] )