(CommandList
  children: [
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} 
                  {
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(id)} {(-u)})])
                      left_token: <Left_Backtick '`'>
                      spids: [7 11]
                    )
                  } {(-ne)} {(0)} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ($ VSub_Number '$0') (': must be root to install the selinux policy'))})
            (C {(exit)} {(1)})
          ]
          spids: [-1 20]
        )
      ]
      spids: [-1 35]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:SF)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(which)} {(setfiles)})])
                left_token: <Left_Backtick '`'>
                spids: [38 42]
              )
            }
          spids: [37]
        )
      ]
      spids: [37]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(1)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(Lit_Other '[')} {(-f)} {(/sbin/setfiles)} {(Lit_Other ']')})
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:SF)
                          op: Equal
                          rhs: {(DQ (/usr/setfiles))}
                          spids: [74]
                        )
                      ]
                      spids: [74]
                    )
                  ]
                  spids: [-1 71]
                )
              ]
              else_action: [
                (C {(echo)} {(DQ ('no selinux tools installed: setfiles'))})
                (C {(exit)} {(1)})
              ]
              spids: [80 95]
            )
          ]
          spids: [-1 57]
        )
      ]
      spids: [-1 97]
    )
    (C {(cd)} {(mdp)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:CP)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(which)} {(checkpolicy)})])
                left_token: <Left_Backtick '`'>
                spids: [106 110]
              )
            }
          spids: [105]
        )
      ]
      spids: [105]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:VERS)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [(C {($ VSub_Name '$CP')} {(-V)}) (C {(awk)} {(SQ <'{print $1}'>)})]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [113 125]
              )
            }
          spids: [112]
        )
      ]
      spids: [112]
    )
    (C {(./mdp)} {(policy.conf)} {(file_contexts)})
    (C {($ VSub_Name '$CP')} {(-o)} {(policy.) ($ VSub_Name '$VERS')} {(policy.conf)})
    (C {(mkdir)} {(-p)} {(/etc/selinux/dummy/policy)})
    (C {(mkdir)} {(-p)} {(/etc/selinux/dummy/contexts/files)})
    (C {(cp)} {(file_contexts)} {(/etc/selinux/dummy/contexts/files)})
    (C {(cp)} {(dbus_contexts)} {(/etc/selinux/dummy/contexts)})
    (C {(cp)} {(policy.) ($ VSub_Name '$VERS')} {(/etc/selinux/dummy/policy)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:FC_FILE)
          op: Equal
          rhs: {(/etc/selinux/dummy/contexts/files/file_contexts)}
          spids: [176]
        )
      ]
      spids: [176]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(/etc/selinux)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(mkdir)} {(-p)} {(/etc/selinux)})]
          spids: [-1 193]
        )
      ]
      spids: [-1 202]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(/etc/selinux/config)} {(Lit_Other ']')})
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (SimpleCommand
              words: [{(cat)}]
              redirects: [
                (Redir
                  op_id: Redir_Great
                  fd: -1
                  arg_word: {(/etc/selinux/config)}
                  spids: [222]
                )
                (HereDoc
                  op_id: Redir_DLess
                  fd: -1
                  body: {(DQ ('SELINUX=enforcing\n') ('SELINUXTYPE=dummy\n'))}
                  do_expansion: True
                  here_end: EOF
                  was_filled: True
                  spids: [226]
                )
              ]
            )
          ]
          spids: [-1 217]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:TYPE)
              op: Equal
              rhs: 
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [
                          (Pipeline
                            children: [
                              (C {(cat)} {(/etc/selinux/config)})
                              (C {(grep)} {(DQ ('^SELINUXTYPE'))})
                              (C {(tail)} {(-1)})
                              (C {(awk)} {(-F) (Lit_Other '=')} {(SQ <'{ print $2 '>) (Lit_RBrace '}')})
                            ]
                            negated: False
                          )
                        ]
                      )
                    left_token: <Left_Backtick '`'>
                    spids: [237 267]
                  )
                }
              spids: [236]
            )
          ]
          spids: [236]
        )
        (If
          arms: [
            (if_arm
              cond: [
                (Sentence
                  child: 
                    (C {(Lit_Other '[')} {(DQ (eq) ($ VSub_Name '$TYPE'))} 
                      {(KW_Bang '!') (Lit_Other '=')} {(DQ (eqdummy))} {(Lit_Other ']')}
                    )
                  terminator: <Op_Semi ';'>
                )
              ]
              action: [
                (C {(selinuxenabled)})
                (If
                  arms: [
                    (if_arm
                      cond: [
                        (Sentence
                          child: 
                            (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')})
                          terminator: <Op_Semi ';'>
                        )
                      ]
                      action: [
                        (C {(echo)} {(DQ ('SELinux already enabled with a non-dummy policy.'))})
                        (C {(echo)} {(DQ ('Exiting.  Please install policy by hand if that'))})
                        (C {(echo)} {(DQ ('is what you REALLY want.'))})
                        (C {(exit)} {(1)})
                      ]
                      spids: [-1 308]
                    )
                  ]
                  spids: [-1 337]
                )
                (C {(mv)} {(/etc/selinux/config)} {(/etc/selinux/config.mdpbak)})
                (SimpleCommand
                  words: [{(grep)} {(-v)} {(DQ ('^SELINUXTYPE'))} {(/etc/selinux/config.mdpbak)}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: -1
                      arg_word: {(/etc/selinux/config)}
                      spids: [357]
                    )
                  ]
                )
                (SimpleCommand
                  words: [{(echo)} {(DQ ('SELINUXTYPE=dummy'))}]
                  redirects: [
                    (Redir
                      op_id: Redir_DGreat
                      fd: -1
                      arg_word: {(/etc/selinux/config)}
                      spids: [368]
                    )
                  ]
                )
              ]
              spids: [-1 289]
            )
          ]
          spids: [-1 373]
        )
      ]
      spids: [233 375]
    )
    (C {(cd)} {(/etc/selinux/dummy/contexts/files)})
    (C {($ VSub_Name '$SF')} {(file_contexts)} {(/)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:mounts)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(cat)} {(/proc/) ($ VSub_Dollar '$$') (/mounts)})
                          (C {(egrep)} {(DQ ('ext2|ext3|xfs|jfs|ext4|ext4dev|gfs2'))})
                          (C {(awk)} {(SQ <'{ print $2 '>) (Lit_RBrace '}')})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [390 413]
              )
            }
          spids: [389]
        )
      ]
      spids: [389]
    )
    (C {($ VSub_Name '$SF')} {(file_contexts)} {($ VSub_Name '$mounts')})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:dodev)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(cat)} {(/proc/) ($ VSub_Dollar '$$') (/mounts)})
                          (C {(grep)} {(DQ ('/dev '))})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_Backtick '`'>
                spids: [424 438]
              )
            }
          spids: [423]
        )
      ]
      spids: [423]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other '[')} {(DQ (eq) ($ VSub_Name '$dodev'))} {(KW_Bang '!') (Lit_Other '=')} 
                  {(DQ (eq))} {(Lit_Other ']')}
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(mount)} {(--move)} {(/dev)} {(/mnt)})
            (C {($ VSub_Name '$SF')} {(file_contexts)} {(/dev)})
            (C {(mount)} {(--move)} {(/mnt)} {(/dev)})
          ]
          spids: [-1 459]
        )
      ]
      spids: [-1 486]
    )
  ]
)