(command.CommandList
  children: [
    (C {<echo>} {(DQ <'*** GENERATE ROOTFS BEGIN ***'>)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SRC_ROOT)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>}))}
          spids: [11]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:SYSROOT)
          op: assign_op.Equal
          rhs: 
            {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) <'/work/sysroot'>}
          spids: [20]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BUSYBOX_INSTALLED)
          op: assign_op.Equal
          rhs: 
            {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) 
              <'/work/busybox/busybox_installed'>
            }
          spids: [30]
        )
      ]
    )
    (C {<cd>} {<work>})
    (C {<echo>} {(DQ <'Preparing initramfs work area...'>)})
    (C {<rm>} {<-rf>} {<rootfs>})
    (C {<cp>} {<-r>} {($ Id.VSub_DollarName '$BUSYBOX_INSTALLED')} {<rootfs>})
    (C {<cp>} {<-r>} {<'src/minimal_rootfs/'> <Id.Lit_Star '*'>} {<rootfs>})
    (C {<cd>} {<rootfs>})
    (C {<rm>} {<-f>} {<linuxrc>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:COPY_SOURCE_ROOTFS)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Pipeline
                      children: [
                        (C {<grep>} {<-i>} {<Id.Lit_Other '^'> <COPY_SOURCE_ROOTFS>} 
                          {($ Id.VSub_DollarName '$SRC_ROOT') <'/.config'>}
                        )
                        (C {<cut>} {<-f2>} {<-d> (SQ <'='>)})
                      ]
                      negated: F
                    )
                )
              )
            }
          spids: [98]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$COPY_SOURCE_ROOTFS'))} 
                      {<Id.Lit_Equals '='>} {(DQ <true>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<cp>} {<-r>} {<'../src'>} {<src>})
            (C {<echo>} {(DQ <'Source files and folders have been copied to \'/src\'.'>)})
          ]
          spids: [125 143]
        )
      ]
      else_action: [(C {<echo>} {(DQ <'Source files and folders have been skipped.'>)})]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BUSYBOX_ARCH)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: 
                  (command.Pipeline
                    children: [(C {<file>} {<'bin/busybox'>}) (C {<cut>} {<-d> (SQ <' '>)} {<-f3>})]
                    negated: F
                  )
              )
            }
          spids: [190]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$BUSYBOX_ARCH'))} 
                      {<Id.Lit_Equals '='>} {(DQ <64-bit>)} {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<mkdir>} {<lib64>})
            (C {<cp>} {($ Id.VSub_DollarName '$SYSROOT') <'/lib/ld-linux'> <Id.Lit_Star '*'>} {<lib64>})
            (C {<echo>} {(DQ <'Dynamic loader is accessed via \'/lib64\'.'>)})
          ]
          spids: [208 226]
        )
      ]
      else_action: [
        (C {<cp>} {($ Id.VSub_DollarName '$SYSROOT') <'/lib/ld-linux'> <Id.Lit_Star '*'>} {<lib>})
        (C {<echo>} {(DQ <'Dynamic loader is accessed via \'/lib\'.'>)})
      ]
    )
    (C {<cp>} {($ Id.VSub_DollarName '$SYSROOT') <'/lib/libm.so.6'>} {<lib>})
    (C {<cp>} {($ Id.VSub_DollarName '$SYSROOT') <'/lib/libc.so.6'>} {<lib>})
    (command.Simple
      words: [
        {<strip>}
        {<-g>}
        {($ Id.VSub_DollarName '$SRC_ROOT') <'/work/rootfs/bin/'> <Id.Lit_Star '*'>}
        {($ Id.VSub_DollarName '$SRC_ROOT') <'/work/rootfs/sbin/'> <Id.Lit_Star '*'>}
        {($ Id.VSub_DollarName '$SRC_ROOT') <'/work/rootfs/lib/'> <Id.Lit_Star '*'>}
      ]
      redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (C {<echo>} {(DQ <'Reduced the size of libraries and executables.'>)})
    (C {<echo>} {(DQ <'The initramfs area has been generated.'>)})
    (C {<cd>} {($ Id.VSub_DollarName '$SRC_ROOT')})
    (C {<echo>} {(DQ <'*** GENERATE ROOTFS END ***'>)})
  ]
)