(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'QEMU_IMAGE='> name:QEMU_IMAGE) op: assign_op.Equal rhs: {<'linuxkit/qemu'> <Id.Lit_Colon ':'> <4563d58e97958f4941fbef9e74cabc08bd402144> <Id.Lit_Splice '@sha256'> <Id.Lit_Colon ':'> <b2db0b13ba1cbb6b48218f088fe0a4d860e1db2c4c6381b5416536f48a612230> } spids: [4] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] spids: [16 36] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILE='> name:FILE) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [63] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILE2='> name:FILE2) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [66] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CMDLINE='> name:CMDLINE) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} spids: [69] ) ] redirects: [] ) (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 left:<Id.Lit_VarLike 'FILE='> name:FILE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PWD) <'/moby'>)} spids: [84] ) ] redirects: [] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BASE='> name:BASE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName FILE))}) right: <Id.Eof_RParen _> ) } spids: [91] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DIR='> name:DIR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {(DQ ($ Id.VSub_DollarName FILE))}) right: <Id.Eof_RParen _> ) } spids: [100] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 left:<Id.Lit_VarLike 'FILE='> name:FILE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName BASE) <-initrd.img>} spids: [144] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILE2='> name:FILE2) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DIR) <'/'> ($ Id.VSub_DollarName BASE) <-bzImage>} spids: [151] ) ] redirects: [] ) ] spids: [109 141] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [(C {<echo>} {(DQ ($ Id.VSub_DollarName FILE))}) (C {<grep>} {<-q>} {(SQ <'^/'>)})] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILE='> name:FILE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName FILE))} spids: [178] ) ] redirects: [] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 <'^/'>)}) ] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FILE2='> name:FILE2) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName FILE2))} spids: [220] ) ] redirects: [] ) ] ) ] spids: [185 199] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (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 <'^/'>)}) ] negated: F stderr_indices: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CMDLINE='> name:CMDLINE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PWD) <'/'> ($ Id.VSub_DollarName CMDLINE))} spids: [264] ) ] redirects: [] ) ] ) ] spids: [229 243] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-c>} {(DQ <'/dev/kvm'>)} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEVKVM='> name:DEVKVM) op: assign_op.Equal rhs: {(DQ <'--device=/dev/kvm'>)} spids: [291] ) ] redirects: [] ) ] spids: [274 288] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BASE='> name:BASE) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName FILE))}) right: <Id.Eof_RParen _> ) } spids: [298] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MOUNTS='> name:MOUNTS) op: assign_op.Equal rhs: {(DQ <'-v '> ($ Id.VSub_DollarName FILE) <':/tmp/'> ($ Id.VSub_DollarName BASE))} spids: [307] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BASE2='> name:BASE2) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName FILE2))}) right: <Id.Eof_RParen _> ) } spids: [315] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BASE3='> name:BASE3) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName CMDLINE))}) right: <Id.Eof_RParen _> ) } spids: [324] ) ] redirects: [] ) (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 left:<Id.Lit_VarLike 'MOUNTS='> name:MOUNTS) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName MOUNTS) <' -v '> ($ Id.VSub_DollarName FILE2) <':/tmp/'> ($ Id.VSub_DollarName BASE2) ) } spids: [348] ) ] redirects: [] ) ] ) (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 left:<Id.Lit_VarLike 'MOUNTS='> name:MOUNTS) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName MOUNTS) <' -v '> ($ Id.VSub_DollarName CMDLINE) <':/tmp/'> ($ Id.VSub_DollarName BASE3) ) } spids: [371] ) ] redirects: [] ) ] ) (C {<docker>} {<run>} {<-it>} {<--rm>} {($ Id.VSub_DollarName MOUNTS)} {($ Id.VSub_DollarName DEVKVM)} {(DQ ($ Id.VSub_DollarName QEMU_IMAGE))} ) ] )