(command.CommandList children: [ (C {<set>} {<-e>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BOOT) op: assign_op.Equal rhs: {<'/boot/boot'>} spids: [8] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ROOT) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<printroot>} {<-r>}))} spids: [11] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-b>} {(DQ ($ Id.VSub_DollarName '$ROOT'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} {<root>} {<device>} {($ Id.VSub_DollarName '$ROOT')} {<not>} {<found>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [21 35] ) ] ) (C {<echo>} {<-n>} { (DQ <'Install boot as '> ($ Id.VSub_DollarName '$BOOT') <' on current root and patch into '> ($ Id.VSub_DollarName '$ROOT') <'? (y/N) '> ) } ) (C {<read>} {<ans>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$ans'))} {<Id.Lit_Equals '='>} {<y>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} {<Aborting.>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [74 90] ) ] ) (command.AndOr ops:[Id.Op_DPipe] children:[(C {<make>} {<install>}) (C {<true>})]) (C {<echo>} {<Installing>} {<boot>} {<monitor>} {<into>} {($ Id.VSub_DollarName '$BOOT') <.>}) (C {<cp>} {<boot>} {($ Id.VSub_DollarName '$BOOT')}) (C {<echo>} {<Patching>} {<position>} {<of>} {($ Id.VSub_DollarName '$BOOT')} {<into>} {($ Id.VSub_DollarName '$ROOT') <.>} ) (C {<installboot>} {<-d>} {(DQ ($ Id.VSub_DollarName '$ROOT'))} {<'/usr/mdec/bootblock'>} {($ Id.VSub_DollarName '$BOOT')} ) (C {<sync>}) ] )