(command.CommandList children: [ (C {(Id.KW_Set 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: (Token id:Id.Left_Backtick val:'`' span_id:12) command_list: (command.CommandList children:[(C {(printroot)} {(-r)})]) ) } spids: [11] ) ] ) (command.If arms: [ (if_arm cond: [ (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: (Token id:Id.ControlFlow_Exit val:exit span_id:50) 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: [ (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: (Token id:Id.ControlFlow_Exit val:exit span_id:97) 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)}) ] )