(command.CommandList children: [ (command.Simple blame_tok: <mount> more_env: [] words: [{<mount>} {<-t>} {<tmpfs>} {<none>} {<'/mnt'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<'/mnt/dev'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<'/mnt/sys'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<'/mnt/proc'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<'/mnt/tmp'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<'/mnt/var'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Created folders for all critical file systems.'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <'Copying the root file system to '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[94m/mnt'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m.'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {<-a>} {<bin>} {<etc>} {<lib>} {<lib64>} {<root>} {<sbin>} {<src>} {<usr>} {<Id.KW_Var var>} {<'/mnt'>} ] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'DEFAULT_OVERLAY_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEFAULT_OVERLAY_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DEFAULT_OVERLAY_DIR='> name: DEFAULT_OVERLAY_DIR ) op: assign_op.Equal rhs: {(DQ <'/tmp/minimal/overlay'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DEFAULT_UPPER_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEFAULT_UPPER_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEFAULT_UPPER_DIR='> name:DEFAULT_UPPER_DIR) op: assign_op.Equal rhs: {(DQ <'/tmp/minimal/rootfs'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'DEFAULT_WORK_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEFAULT_WORK_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEFAULT_WORK_DIR='> name:DEFAULT_WORK_DIR) op: assign_op.Equal rhs: {(DQ <'/tmp/minimal/work'>)} ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Searching available devices for overlay content.'>)}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [DEVICE] iterable: (for_iter.Words words:[{<'/dev/'> <Id.Lit_Star '*'>}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'DEV='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEV='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEV='> name:DEV) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DEVICE> var_name: DEVICE suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SYSDEV='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SYSDEV='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SYSDEV='> name:SYSDEV) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'/sys/class/block/'> ($ Id.VSub_DollarName DEV))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName DEV)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'> <loop> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ ($ Id.VSub_DollarName SYSDEV))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [(command.ControlFlow keyword:<Id.ControlFlow_Continue continue>)] spids: [245 261] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {<'/tmp/mnt/device'>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'DEVICE_MNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'DEVICE_MNT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEVICE_MNT='> name:DEVICE_MNT) op: assign_op.Equal rhs: {<'/tmp/mnt/device'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OVERLAY_DIR='> name:OVERLAY_DIR) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_MNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_MNT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OVERLAY_MNT='> name:OVERLAY_MNT) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'UPPER_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'UPPER_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UPPER_DIR='> name:UPPER_DIR) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'WORK_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'WORK_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WORK_DIR='> name:WORK_DIR) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.Simple blame_tok: <mount> more_env: [] words: [{<mount>} {($ Id.VSub_DollarName DEVICE)} {($ Id.VSub_DollarName DEVICE_MNT)}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-d>} {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal/rootfs'>} {<-a>} {<-d>} {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal/work'>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <' Found '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[94m/minimal'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m folder on device '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[31m'> ($ Id.VSub_DollarName DEVICE) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m.'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <touch> more_env: [] words: [ {<touch>} {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal/rootfs/minimal.pid'>} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal/rootfs/minimal.pid'> } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <' Device '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[31m'> ($ Id.VSub_DollarName DEVICE) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[0m is mounted in read/write mode.'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [ {<rm>} {<-f>} {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal/rootfs/minimal.pid'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERLAY_DIR='> name: OVERLAY_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEFAULT_OVERLAY_DIR)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_MNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_MNT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERLAY_MNT='> name: OVERLAY_MNT ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEVICE_MNT)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'UPPER_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'UPPER_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'UPPER_DIR='> name: UPPER_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal/rootfs'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'WORK_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'WORK_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WORK_DIR='> name: WORK_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal/work'>} ) ] redirects: [] ) ] spids: [368 381] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <' Device '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[31m'> ($ Id.VSub_DollarName DEVICE) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[0m is mounted in read only mode.'> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERLAY_DIR='> name: OVERLAY_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal/rootfs'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_MNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_MNT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERLAY_MNT='> name: OVERLAY_MNT ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEVICE_MNT)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'UPPER_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'UPPER_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'UPPER_DIR='> name: UPPER_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEFAULT_UPPER_DIR)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'WORK_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'WORK_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WORK_DIR='> name:WORK_DIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEFAULT_WORK_DIR)} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [314 334] ) (IfArm keyword: <Id.KW_Elif elif> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal.img'>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <' Found '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[94m/minimal.img'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m image on device '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[31m'> ($ Id.VSub_DollarName DEVICE) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m.'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {<'/tmp/mnt/image'>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'IMAGE_MNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IMAGE_MNT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IMAGE_MNT='> name:IMAGE_MNT) op: assign_op.Equal rhs: {<'/tmp/mnt/image'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'LOOP_DEVICE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LOOP_DEVICE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'LOOP_DEVICE='> name: LOOP_DEVICE ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <losetup> more_env: [] words: [{<losetup>} {<-f>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <losetup> more_env: [] words: [ {<losetup>} {($ Id.VSub_DollarName LOOP_DEVICE)} {($ Id.VSub_DollarName DEVICE_MNT) <'/minimal.img'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [ {<mount>} {($ Id.VSub_DollarName LOOP_DEVICE)} {($ Id.VSub_DollarName IMAGE_MNT)} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-d>} {($ Id.VSub_DollarName IMAGE_MNT) <'/rootfs'>} {<-a>} {<-d>} {($ Id.VSub_DollarName IMAGE_MNT) <'/work'>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <touch> more_env: [] words: [ {<touch>} {($ Id.VSub_DollarName IMAGE_MNT) <'/rootfs/minimal.pid'>} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName IMAGE_MNT) <'/rootfs/minimal.pid'> } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <' Image '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[94m'> ($ Id.VSub_DollarName DEVICE) <'/minimal.img'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[0m is mounted in read/write mode.'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [ {<rm>} {<-f>} {($ Id.VSub_DollarName IMAGE_MNT) <'/rootfs/minimal.pid'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERLAY_DIR='> name: OVERLAY_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEFAULT_OVERLAY_DIR)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_MNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_MNT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERLAY_MNT='> name: OVERLAY_MNT ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName IMAGE_MNT)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'UPPER_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'UPPER_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'UPPER_DIR='> name: UPPER_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName IMAGE_MNT) <'/rootfs'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'WORK_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'WORK_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WORK_DIR='> name: WORK_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName IMAGE_MNT) <'/work'>} ) ] redirects: [] ) ] spids: [579 592] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <' Image '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[94m'> ($ Id.VSub_DollarName DEVICE) <'/minimal.img'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[0m is mounted in read only mode.'> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERLAY_DIR='> name: OVERLAY_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName IMAGE_MNT) <'/rootfs'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'OVERLAY_MNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OVERLAY_MNT='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'OVERLAY_MNT='> name: OVERLAY_MNT ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName IMAGE_MNT)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'UPPER_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'UPPER_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'UPPER_DIR='> name: UPPER_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEFAULT_UPPER_DIR)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'WORK_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'WORK_DIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WORK_DIR='> name: WORK_DIR ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DEFAULT_WORK_DIR)} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [547 567] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <umount> more_env: [] words: [{<umount>} {($ Id.VSub_DollarName IMAGE_MNT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {($ Id.VSub_DollarName IMAGE_MNT)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [472 485] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName OVERLAY_DIR))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<-a>} {(DQ ($ Id.VSub_DollarName UPPER_DIR))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<-a>} {(DQ ($ Id.VSub_DollarName WORK_DIR))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName OVERLAY_DIR)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName UPPER_DIR)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {($ Id.VSub_DollarName WORK_DIR)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [ {<mount>} {<-t>} {<overlay>} {<-o>} {<Id.Lit_VarLike 'lowerdir='> ($ Id.VSub_DollarName OVERLAY_DIR) <Id.Lit_Colon ':'> <'/mnt'> <Id.Lit_Comma ','> <Id.Lit_VarLike 'upperdir='> ($ Id.VSub_DollarName UPPER_DIR) <Id.Lit_Comma ','> <Id.Lit_VarLike 'workdir='> ($ Id.VSub_DollarName WORK_DIR) } {<none>} {<'/mnt'>} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'OUT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'OUT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OUT='> name:OUT) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName OUT))} {<Id.Lit_Equals '='>} {(DQ <0>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[31mMount failed (probably on vfat).'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[0m'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <umount> more_env: [] words: [{<umount>} {($ Id.VSub_DollarName OVERLAY_MNT)}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <rmdir> more_env: [] words: [{<rmdir>} {($ Id.VSub_DollarName OVERLAY_MNT)}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <rmdir> more_env: [] words: [{<rmdir>} {($ Id.VSub_DollarName DEFAULT_OVERLAY_DIR)}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <rmdir> more_env: [] words: [{<rmdir>} {($ Id.VSub_DollarName DEFAULT_UPPER_DIR)}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <rmdir> more_env: [] words: [{<rmdir>} {($ Id.VSub_DollarName DEFAULT_WORK_DIR)}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] spids: [806 826] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <' Overlay data from device '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[31m'> ($ Id.VSub_DollarName DEVICE) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[0m has been merged.'> ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Break break> ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [707 749] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <' Device '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[31m'> ($ Id.VSub_DollarName DEVICE) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'e[0m has no proper overlay structure.'> ) } ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <umount> more_env: [] words: [{<umount>} {($ Id.VSub_DollarName DEVICE_MNT)}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {($ Id.VSub_DollarName DEVICE_MNT)}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <mount> more_env: [] words: [{<mount>} {<--move>} {<'/dev'>} {<'/mnt/dev'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [{<mount>} {<--move>} {<'/sys'>} {<'/mnt/sys'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [{<mount>} {<--move>} {<'/proc'>} {<'/mnt/proc'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [{<mount>} {<--move>} {<'/tmp'>} {<'/mnt/tmp'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<-e>} { (DQ <'Mount locations '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[94m/dev'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[94m/sys'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[94m/tmp'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[94m/proc'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m have been moved to '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[94m/mnt'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'> ch:'\\') <'e[0m.'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Switching from initramfs root area to overlayfs root area.'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <exec> more_env: [] words: [{<exec>} {<switch_root>} {<'/mnt'>} {<'/etc/03_init.sh'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'(/etc/02_overlay.sh) - there is a serious bug...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-n1>} {<-s>}] redirects: [] do_fork: T ) ] )