(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SRC_DIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_CommandSub "$(">
                spids: [5 7]
              )
            }
          spids: [4]
        )
      ]
      spids: [4]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-d)} 
                  {($ VSub_Name "$SRC_DIR") (/work/glibc/glibc_prepared)} {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ("Cannot continue - GLIBC is missing. Please buld GLIBC first."))})
            (C {(exit)} {(1)})
          ]
          spids: [-1 25]
        )
      ]
      spids: [-1 39]
    )
    (C {(echo)} {(DQ ("Preparing the overlay glibc folder. This may take a while..."))})
    (C {(rm)} {(-rf)} {(work/overlay/glibc)})
    (C {(mkdir)} {(-p)} {(work/overlay/glibc/lib)})
    (C {(cd)} {(work/glibc/glibc_prepared/lib)})
    (C {(find)} {(.)} {(-type)} {(l)} {(-exec)} {(cp)} {(Lit_LBrace "{") (Lit_RBrace "}")} 
      {($ VSub_Name "$SRC_DIR") (/work/overlay/glibc/lib)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\;">)}
    )
    (C {(echo)} {(DQ ("All libraries have been copied."))})
    (C {(cd)} {($ VSub_Name "$SRC_DIR") (/work/overlay/glibc/lib)})
    (ForEach
      iter_name: FILE_DEL
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(ls)} {(Lit_Other "*") (.so)})])
            left_token: <Left_CommandSub "$(">
            spids: [105 110]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:FILE_KEEP)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(ls)} {($ VSub_Name "$FILE_DEL") (.) (Lit_Other "*")})]
                          )
                        left_token: <Left_CommandSub "$(">
                        spids: [116 122]
                      )
                    }
                  spids: [115]
                )
              ]
              spids: [115]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other "[")} {(KW_Bang "!")} {(DQ ($ VSub_Name "$FILE_KEEP"))} 
                          {(Lit_Other "=")} {(DQ )} {(Lit_Other "]")}
                        )
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (C {(rm)} {($ VSub_Name "$FILE_DEL")})
                    (C {(ln)} {(-s)} {($ VSub_Name "$FILE_KEEP")} {($ VSub_Name "$FILE_DEL")})
                  ]
                  spids: [-1 145]
                )
              ]
              spids: [-1 166]
            )
          ]
          spids: [112 168]
        )
      spids: [104 -1]
    )
    (C {(echo)} {(DQ ("Duplicate libraries have been replaced with soft links."))})
    (C {(strip)} {(-g)} {(Lit_Other "*")})
    (C {(echo)} {(DQ ("All libraries have been optimized for size."))})
    (C {(cp)} {(-r)} {($ VSub_Name "$SRC_DIR") (/work/overlay/glibc/lib)} 
      {($ VSub_Name "$SRC_DIR") (/work/src/minimal_overlay)}
    )
    (C {(echo)} {(DQ ("All libraries have been installed."))})
    (C {(cd)} {($ VSub_Name "$SRC_DIR")})
  ]
)