(command.CommandList children: [ (command.Simple blame_tok:<set> more_env:[] words:[{<set>} {<-e>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_NAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_NAME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_NAME='> name:NANO_NAME) op: assign_op.Equal rhs: {<full>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_SRC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_SRC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_SRC='> name:NANO_SRC) op: assign_op.Equal rhs: {<'/usr/src'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_TOOLS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_TOOLS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_TOOLS='> name:NANO_TOOLS) op: assign_op.Equal rhs: {<'tools/tools/nanobsd'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_PACKAGE_DIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_PACKAGE_DIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_PACKAGE_DIR='> name:NANO_PACKAGE_DIR) op: assign_op.Equal rhs: {(${ Id.VSub_Name NANO_SRC) <'/'> (${ Id.VSub_Name NANO_TOOLS) <'/Pkg'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_PACKAGE_LIST='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_PACKAGE_LIST='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_PACKAGE_LIST='> name:NANO_PACKAGE_LIST) op: assign_op.Equal rhs: {(DQ <'*'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_PKG_META_BASE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_PKG_META_BASE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_PKG_META_BASE='> name:NANO_PKG_META_BASE) op: assign_op.Equal rhs: {<'/var/db'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_MAKE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_MAKE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_MAKE='> name:NANO_MAKE) op: assign_op.Equal rhs: {(DQ <make>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_PMAKE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_PMAKE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_PMAKE='> name:NANO_PMAKE) op: assign_op.Equal rhs: {(DQ <'make -j 3'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_IMGNAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_IMGNAME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_IMGNAME='> name:NANO_IMGNAME) op: assign_op.Equal rhs: {(DQ <_.disk.full>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CONF_BUILD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONF_BUILD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONF_BUILD='> name:CONF_BUILD) op: assign_op.Equal rhs: {(SQ <' '>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CONF_INSTALL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONF_INSTALL='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONF_INSTALL='> name:CONF_INSTALL) op: assign_op.Equal rhs: {(SQ <' '>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CONF_WORLD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CONF_WORLD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CONF_WORLD='> name:CONF_WORLD) op: assign_op.Equal rhs: {(SQ <' '>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_KERNEL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_KERNEL='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_KERNEL='> name:NANO_KERNEL) op: assign_op.Equal rhs: {<GENERIC>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_MODULES='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_MODULES='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_MODULES='> name:NANO_MODULES) op: assign_op.Equal rhs: (rhs_word__Empty) ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_EARLY_CUSTOMIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_EARLY_CUSTOMIZE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_EARLY_CUSTOMIZE='> name: NANO_EARLY_CUSTOMIZE ) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_CUSTOMIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_CUSTOMIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_CUSTOMIZE='> name:NANO_CUSTOMIZE) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_LATE_CUSTOMIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_LATE_CUSTOMIZE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_LATE_CUSTOMIZE='> name: NANO_LATE_CUSTOMIZE ) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_NEWFS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_NEWFS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_NEWFS='> name:NANO_NEWFS) op: assign_op.Equal rhs: {(DQ <'-b 4096 -f 512 -i 8192 -U'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_DRIVE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_DRIVE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_DRIVE='> name:NANO_DRIVE) op: assign_op.Equal rhs: {<ada0>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_MEDIASIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_MEDIASIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_MEDIASIZE='> name:NANO_MEDIASIZE) op: assign_op.Equal rhs: {<2000000>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_IMAGES='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_IMAGES='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_IMAGES='> name:NANO_IMAGES) op: assign_op.Equal rhs: {<2>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_INIT_IMG2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_INIT_IMG2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_INIT_IMG2='> name:NANO_INIT_IMG2) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_CODESIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_CODESIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_CODESIZE='> name:NANO_CODESIZE) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_CONFSIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_CONFSIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_CONFSIZE='> name:NANO_CONFSIZE) op: assign_op.Equal rhs: {<2048>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_DATASIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_DATASIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_DATASIZE='> name:NANO_DATASIZE) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_RAM_ETCSIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_RAM_ETCSIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_RAM_ETCSIZE='> name:NANO_RAM_ETCSIZE) op: assign_op.Equal rhs: {<10240>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_RAM_TMPVARSIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_RAM_TMPVARSIZE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_RAM_TMPVARSIZE='> name: NANO_RAM_TMPVARSIZE ) op: assign_op.Equal rhs: {<10240>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_SECTS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_SECTS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_SECTS='> name:NANO_SECTS) op: assign_op.Equal rhs: {<63>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_HEADS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_HEADS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_HEADS='> name:NANO_HEADS) op: assign_op.Equal rhs: {<16>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_BOOT0CFG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_BOOT0CFG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_BOOT0CFG='> name:NANO_BOOT0CFG) op: assign_op.Equal rhs: {(DQ <'-o packet -s 1 -m 3'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_BOOTLOADER='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_BOOTLOADER='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_BOOTLOADER='> name:NANO_BOOTLOADER) op: assign_op.Equal rhs: {(DQ <'boot/boot0sio'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_BOOT2CFG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_BOOT2CFG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_BOOT2CFG='> name:NANO_BOOT2CFG) op: assign_op.Equal rhs: {(DQ <'-h -S115200'>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_MD_BACKING='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_MD_BACKING='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_MD_BACKING='> name:NANO_MD_BACKING) op: assign_op.Equal rhs: {(DQ <file>)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_IMAGE_MBRONLY='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_IMAGE_MBRONLY='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_IMAGE_MBRONLY='> name:NANO_IMAGE_MBRONLY) op: assign_op.Equal rhs: {<true>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PPLEVEL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PPLEVEL='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PPLEVEL='> name:PPLEVEL) op: assign_op.Equal rhs: {<3>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_LABEL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_LABEL='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_LABEL='> name:NANO_LABEL) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_SLICE_ROOT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_SLICE_ROOT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_SLICE_ROOT='> name:NANO_SLICE_ROOT) op: assign_op.Equal rhs: {<s1>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_SLICE_ALTROOT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_SLICE_ALTROOT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_SLICE_ALTROOT='> name:NANO_SLICE_ALTROOT) op: assign_op.Equal rhs: {<s2>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_SLICE_CFG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_SLICE_CFG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_SLICE_CFG='> name:NANO_SLICE_CFG) op: assign_op.Equal rhs: {<s3>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_SLICE_DATA='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_SLICE_DATA='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_SLICE_DATA='> name:NANO_SLICE_DATA) op: assign_op.Equal rhs: {<s4>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_ROOT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_ROOT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_ROOT='> name:NANO_ROOT) op: assign_op.Equal rhs: {<s1a>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_ALTROOT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_ALTROOT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_ALTROOT='> name:NANO_ALTROOT) op: assign_op.Equal rhs: {<s2a>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_DEF_UNAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_DEF_UNAME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_DEF_UNAME='> name:NANO_DEF_UNAME) op: assign_op.Equal rhs: {<root>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_DEF_GNAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_DEF_GNAME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_DEF_GNAME='> name:NANO_DEF_GNAME) op: assign_op.Equal rhs: {<wheel>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_ARCH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_ARCH='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_ARCH='> name:NANO_ARCH) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <uname> more_env: [] words: [{<uname>} {<-p>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_CPUTYPE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_CPUTYPE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_CPUTYPE='> name:NANO_CPUTYPE) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_CFGDIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_CFGDIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_CFGDIR='> name:NANO_CFGDIR) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_DATADIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_DATADIR='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_DATADIR='> name:NANO_DATADIR) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SRCCONF='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SRCCONF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRCCONF='> name:SRCCONF) op: assign_op.Equal rhs: {<'/dev/null'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'SRC_ENV_CONF='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SRC_ENV_CONF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SRC_ENV_CONF='> name:SRC_ENV_CONF) op: assign_op.Equal rhs: {<'/dev/null'>} ) ] redirects: [] ) (command.ShFunction name_tok: <make_export> name: make_export body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'var='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'var='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'var='> name:var) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'val='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) ($ Id.VSub_DollarName var) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Setting variable: '> ($ Id.VSub_DollarName var) <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName val) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <nano_make_build_env> name: nano_make_build_env body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike '__MAKE_CONF='> pairs: [ (AssignPair left: <Id.Lit_VarLike '__MAKE_CONF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__MAKE_CONF='> name:__MAKE_CONF) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name NANO_MAKE_CONF_BUILD))} ) ] redirects: [] ) (command.Simple blame_tok: <make_export> more_env: [] words: [{<make_export>} {<__MAKE_CONF>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <nano_make_install_env> name: nano_make_install_env body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike '__MAKE_CONF='> pairs: [ (AssignPair left: <Id.Lit_VarLike '__MAKE_CONF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike '__MAKE_CONF='> name:__MAKE_CONF) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name NANO_MAKE_CONF_INSTALL))} ) ] redirects: [] ) (command.Simple blame_tok: <make_export> more_env: [] words: [{<make_export>} {<__MAKE_CONF>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <nano_make_kernel_env> name: nano_make_kernel_env body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {(${ Id.VSub_Name NANO_KERNEL)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'KERNCONFDIR='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KERNCONFDIR='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'KERNCONFDIR='> name: KERNCONFDIR ) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <realpath> more_env: [] words: [ {<realpath>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {(${ Id.VSub_Name NANO_KERNEL)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'KERNCONF='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KERNCONF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KERNCONF='> name:KERNCONF) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {(${ Id.VSub_Name NANO_KERNEL)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.Simple blame_tok: <make_export> more_env: [] words: [{<make_export>} {<KERNCONFDIR>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <make_export> more_env: [] words: [{<make_export>} {<KERNCONF>}] redirects: [] do_fork: T ) ] spids: [684 698] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'KERNCONF='> (DQ (${ Id.VSub_Name NANO_KERNEL))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <make_export> more_env: [] words: [{<make_export>} {<KERNCONF>}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <nano_global_make_env> name: nano_global_make_env body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name NANO_ARCH))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<Id.Lit_VarLike 'TARGET_ARCH='> (DQ (${ Id.VSub_Name NANO_ARCH))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name NANO_CPUTYPE))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<Id.Lit_VarLike 'TARGET_CPUTYPE='> (DQ (${ Id.VSub_Name NANO_CPUTYPE))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <rm> name: rm body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'NANO RM '> ($ Id.VSub_Star '*'))}] redirects: [] do_fork: T ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <uname> more_env: [] words: [{<uname>} {<-r>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <7> pattern: (pat.Words words: [{<7> <Id.Lit_Star '*'>} {<8> <Id.Lit_Star '*'>} {<9> <Id.Lit_Star '*'>}] ) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <command> more_env: [] words: [{<command>} {<rm>} {($ Id.VSub_Star '*')}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <command> more_env: [] words: [{<command>} {<rm>} {<-x>} {($ Id.VSub_Star '*')}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <tgt_touch> name: tgt_touch body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [i] iterable: (for_iter__Args) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <touch> more_env: [] words: [{<touch>} {($ Id.VSub_DollarName i)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'./'> (${ Id.VSub_Name i) <' type=file'>)}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_METALOG)} ) ] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <tgt_dir2symlink> name: tgt_dir2symlink body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'dir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'dir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'symlink='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'symlink='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'symlink='> name:symlink) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(DQ ($ Id.VSub_DollarName dir))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <ln> more_env: [] words: [ {<ln>} {<-s>} {(DQ ($ Id.VSub_DollarName symlink))} {(DQ ($ Id.VSub_DollarName dir))} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName NANO_METALOG))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'./'> (${ Id.VSub_Name dir) <' type=link mode=0777 link='> (${ Id.VSub_Name symlink) ) } ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_METALOG)} ) ] do_fork: T ) ] spids: [1029 1042] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <CR> name: CR body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <chroot> more_env: [] words: [ {<chroot>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))} {<'/bin/sh'>} {<-exc>} {(DQ ($ Id.VSub_Star '*'))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <CR0> name: CR0 body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <chroot> more_env: [] words: [ {<chroot>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))} {<'/bin/sh'>} {<-c>} {(DQ ($ Id.VSub_Star '*'))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <nano_cleanup> name: nano_cleanup body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-eq>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Error encountered. Check for errors in last log file.'>)}] redirects: [ (Redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_QMark '?')} ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <clean_build> name: clean_build body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} { (DQ <'Clean and create object directory ('> (${ Id.VSub_Name MAKEOBJDIRPREFIX) <')'> ) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(${ Id.VSub_Name MAKEOBJDIRPREFIX) <'/'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <chflags> more_env: [] words: [ {<chflags>} {<-R>} {<noschg>} {(${ Id.VSub_Name MAKEOBJDIRPREFIX) <'/'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-r>} {(${ Id.VSub_Name MAKEOBJDIRPREFIX) <'/'>}] redirects: [] do_fork: T ) ] spids: [1197 1219] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <make_conf_build> name: make_conf_build body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} { (DQ <'Construct build make.conf ('> ($ Id.VSub_DollarName NANO_MAKE_CONF_BUILD) <')'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name MAKEOBJDIRPREFIX)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <printenv> more_env: [] words: [{<printenv>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name MAKEOBJDIRPREFIX) <'/_.env'>} ) ] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <nano_global_make_env> more_env: [] words: [{<nano_global_make_env>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name CONF_WORLD))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name CONF_BUILD))}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_MAKE_CONF_BUILD)} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <build_world> name: build_world body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <'run buildworld'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<3>} {(DQ <'log: '> (${ Id.VSub_Name MAKEOBJDIRPREFIX) <'/_.bw'>)}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <nano_make_build_env> more_env: [] words: [{<nano_make_build_env>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<xtrace>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_SRC))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [{(${ Id.VSub_Name NANO_PMAKE)} {<buildworld>}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name MAKEOBJDIRPREFIX) <'/_.bw'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <build_kernel> name: build_kernel body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<extra>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} {(DQ <'build kernel ('> ($ Id.VSub_DollarName NANO_KERNEL) <')'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<3>} {(DQ <'log: '> (${ Id.VSub_Name MAKEOBJDIRPREFIX) <'/_.bk'>)}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <nano_make_build_env> more_env: [] words: [{<nano_make_build_env>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <nano_make_kernel_env> more_env: [] words: [{<nano_make_kernel_env>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<xtrace>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_SRC))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [{(${ Id.VSub_Name NANO_PMAKE)} {<buildkernel>}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name MAKEOBJDIRPREFIX) <'/_.bk'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <clean_world> name: clean_world body: (command.Subshell left: <Id.Op_LParen _> child: (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name NANO_OBJ))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ (${ Id.VSub_Name MAKEOBJDIRPREFIX))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} { (DQ <'Clean and create object directory ('> (${ Id.VSub_Name NANO_OBJ) <')'>) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(${ Id.VSub_Name NANO_OBJ) <'/'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <chflags> more_env: [] words: [{<chflags>} {<-R>} {<noschg>} {(${ Id.VSub_Name NANO_OBJ)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-r>} {(${ Id.VSub_Name NANO_OBJ) <'/'>}] redirects: [] do_fork: T ) ] spids: [1560 1582] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <mkdir> more_env: [] words: [ {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name NANO_OBJ))} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <printenv> more_env: [] words: [{<printenv>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.env'>} ) ] do_fork: T ) ] spids: [1522 1544] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} { (DQ <'Clean and create world directory ('> (${ Id.VSub_Name NANO_WORLDDIR) <')'>) } ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR) <'/'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <chflags> more_env: [] words: [{<chflags>} {<-R>} {<noschg>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR) <'/'>)}] redirects: [] do_fork: T ) ] spids: [1652 1676] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <make_conf_install> name: make_conf_install body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} { (DQ <'Construct install make.conf ('> ($ Id.VSub_DollarName NANO_MAKE_CONF_INSTALL) <')'> ) } ] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <nano_global_make_env> more_env: [] words: [{<nano_global_make_env>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name CONF_WORLD))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name CONF_INSTALL))}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name NANO_NOPRIV_BUILD))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<Id.Lit_VarLike 'NO_ROOT='> <t>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<Id.Lit_VarLike 'METALOG='> (${ Id.VSub_Name NANO_METALOG)} ] redirects: [] do_fork: T ) ] spids: [1776 1791] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_MAKE_CONF_INSTALL)} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <install_world> name: install_world body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <installworld>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<3>} {(DQ <'log: '> (${ Id.VSub_Name NANO_LOG) <'/_.iw'>)}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <nano_make_install_env> more_env: [] words: [{<nano_make_install_env>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<xtrace>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_SRC))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name NANO_MAKE)} {<installworld>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name NANO_WORLDDIR))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <chflags> more_env: [] words: [{<chflags>} {<-R>} {<noschg>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.iw'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <install_etc> name: install_etc body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <'install /etc'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<3>} {(DQ <'log: '> (${ Id.VSub_Name NANO_LOG) <'/_.etc'>)}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <nano_make_install_env> more_env: [] words: [{<nano_make_install_env>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<xtrace>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_SRC))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name NANO_MAKE)} {<distribution>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name NANO_WORLDDIR))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {<'/dev/null'>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR)) <'/etc/make.conf'>} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.etc'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <install_kernel> name: install_kernel body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<extra>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} {(DQ <'install kernel ('> ($ Id.VSub_DollarName NANO_KERNEL) <')'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<3>} {(DQ <'log: '> (${ Id.VSub_Name NANO_LOG) <'/_.ik'>)}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <nano_make_install_env> more_env: [] words: [{<nano_make_install_env>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <nano_make_kernel_env> more_env: [] words: [{<nano_make_kernel_env>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name NANO_MODULES))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <default>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'MODULES_OVERRIDE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MODULES_OVERRIDE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'MODULES_OVERRIDE='> name: MODULES_OVERRIDE ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name NANO_MODULES))} ) ] redirects: [] ) (command.Simple blame_tok: <make_export> more_env: [] words: [{<make_export>} {<MODULES_OVERRIDE>}] redirects: [] do_fork: T ) ] spids: [2073 2093] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<xtrace>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_SRC))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name NANO_MAKE)} {<installkernel>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name NANO_WORLDDIR))} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.ik'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <native_xtools> name: native_xtools body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <print> more_env: [] words: [ {<print>} {<2>} {(DQ <'Installing the optimized native build tools for cross env'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<3>} {(DQ <'log: '> (${ Id.VSub_Name NANO_LOG) <'/_.native_xtools'>)} ] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <nano_make_install_env> more_env: [] words: [{<nano_make_install_env>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<xtrace>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_SRC))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [ {(${ Id.VSub_Name NANO_MAKE)} {<native-xtools>} {<Id.Lit_VarLike 'DESTDIR='> (DQ (${ Id.VSub_Name NANO_WORLDDIR))} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.native_xtools'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <run_early_customize> name: run_early_customize body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <'run early customize scripts'>)}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [c] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName NANO_EARLY_CUSTOMIZE)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} { (DQ <'early customize '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName c) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<3>} { (DQ <'log: '> (${ Id.VSub_Name NANO_LOG) <'/_.early_cust.'> ($ Id.VSub_DollarName c) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<4>} { (DQ (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <type> more_env: [] words: [{<type>} {($ Id.VSub_DollarName c)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } ] redirects: [] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-x>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.Simple blame_tok: <Id.VSub_DollarName '$c'> more_env: [] words: [{($ Id.VSub_DollarName c)}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<Id.Lit_Other '+'> <x>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.early_cust.'> ($ Id.VSub_DollarName c)} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] right: <Id.Lit_RBrace '}'> ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <run_customize> name: run_customize body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <'run customize scripts'>)}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [c] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName NANO_CUSTOMIZE)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} { (DQ <'customize '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName c) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<3>} { (DQ <'log: '> (${ Id.VSub_Name NANO_LOG) <'/_.cust.'> ($ Id.VSub_DollarName c) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<4>} { (DQ (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <type> more_env: [] words: [{<type>} {($ Id.VSub_DollarName c)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } ] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-x>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <Id.VSub_DollarName '$c'> more_env: [] words: [{($ Id.VSub_DollarName c)}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.cust.'> ($ Id.VSub_DollarName c)} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <run_late_customize> name: run_late_customize body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <'run late customize scripts'>)}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [c] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName NANO_LATE_CUSTOMIZE)}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} { (DQ <'late customize '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName c) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<3>} { (DQ <'log: '> (${ Id.VSub_Name NANO_LOG) <'/_.late_cust.'> ($ Id.VSub_DollarName c) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<4>} { (DQ (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <type> more_env: [] words: [{<type>} {($ Id.VSub_DollarName c)}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } ] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-x>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <Id.VSub_DollarName '$c'> more_env: [] words: [{($ Id.VSub_DollarName c)}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.late_cust.'> ($ Id.VSub_DollarName c)} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <fixup_before_diskimage> name: fixup_before_diskimage body: (command.Subshell left: <Id.Op_LParen _> child: (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name NANO_METALOG))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <'Fixing metalog'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cp> more_env: [] words: [ {<cp>} {(${ Id.VSub_Name NANO_METALOG)} {(${ Id.VSub_Name NANO_METALOG) <.pre>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'/set uname='> (${ Id.VSub_Name NANO_DEF_UNAME) <' gname='> (${ Id.VSub_Name NANO_DEF_GNAME) ) } ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_METALOG)} ) ] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>} {(${ Id.VSub_Name NANO_METALOG) <.pre>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [{(${ Id.VSub_Name NANO_TOOLS) <'/mtree-dedup.awk'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [{<sed>} {<-e>} {(SQ <'s/ size=[0-9][0-9]*//'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sort> more_env: [] words: [{<sort>}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_METALOG)} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] spids: [2655 2670] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <setup_nanobsd> name: setup_nanobsd body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <'configure nanobsd setup'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<3>} {(DQ <'log: '> (${ Id.VSub_Name NANO_LOG) <'/_.dl'>)}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-d>} {<'usr/local/etc'>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {<'etc/local'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {<'usr/local/etc'>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <find> more_env: [] words: [{<find>} {<.>} {<-print>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cpio> more_env: [] words: [{<cpio>} {<-dumpl>} {<'../../../etc/local'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {<..>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {<etc>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <ln> more_env: [] words: [{<ln>} {<-s>} {<'../../etc/local'>} {<etc>}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ] spids: [2813 2825] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [d] iterable: (for_iter.Words words:[{<Id.KW_Var var>} {<etc>}]) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <mkdir> more_env: [] words: [ {<mkdir>} {<-p>} {<'conf/base/'> ($ Id.VSub_DollarName d)} {<'conf/default/'> ($ Id.VSub_DollarName d)} ] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <find> more_env: [] words: [{<find>} {($ Id.VSub_DollarName d)} {<-print>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cpio> more_env: [] words: [{<cpio>} {<-dumpl>} {<'conf/base/'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName NANO_RAM_ETCSIZE))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'conf/base/etc/md_size'>} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ ($ Id.VSub_DollarName NANO_RAM_TMPVARSIZE))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'conf/base/var/md_size'>} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'mount -o ro /dev/'> (${ Id.VSub_Name NANO_DRIVE) (${ Id.VSub_Name NANO_SLICE_CFG) ) } ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'conf/default/etc/remount'>} ) ] do_fork: T ) (command.Simple blame_tok: <tgt_dir2symlink> more_env: [] words: [{<tgt_dir2symlink>} {<tmp>} {<'var/tmp'>}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.dl'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <setup_nanobsd_etc> name: setup_nanobsd_etc body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <'configure nanobsd /etc'>)}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <touch> more_env: [] words: [{<touch>} {<'etc/diskless'>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name NANO_NOPRIV_BUILD))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <chmod> more_env: [] words: [{<chmod>} {<666>} {<'etc/defaults/rc.conf'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'root_rw_mount=NO'>)}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'etc/defaults/rc.conf'>} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'entropy_file=NO'>)}] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'etc/defaults/rc.conf'>} ) ] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name NANO_NOPRIV_BUILD))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <chmod> more_env: [] words: [{<chmod>} {<444>} {<'etc/defaults/rc.conf'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'NANO_DRIVE='> (${ Id.VSub_Name NANO_DRIVE))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'etc/nanobsd.conf'>} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'/dev/'> (${ Id.VSub_Name NANO_DRIVE) (${ Id.VSub_Name NANO_ROOT) <' / ufs ro 1 1'> ) } ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'etc/fstab'>} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'/dev/'> (${ Id.VSub_Name NANO_DRIVE) (${ Id.VSub_Name NANO_SLICE_CFG) <' /cfg ufs rw,noauto 2 2'> ) } ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'etc/fstab'>} ) ] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {<cfg>}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <prune_usr> name: prune_usr body: (command.Subshell left: <Id.Op_LParen _> child: (command.Pipeline children: [ (command.Simple blame_tok: <find> more_env: [] words: [ {<find>} {(DQ (${ Id.VSub_Name NANO_WORLDDIR)) <'/usr'>} {<-type>} {<d>} {<-depth>} {<-print>} ] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<d>}] redirects: [] do_fork: T ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.AndOr children: [ (command.Simple blame_tok: <rmdir> more_env: [] words: [{<rmdir>} {($ Id.VSub_DollarName d)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <newfs_part> name: newfs_part body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<dev>} {<mnt>} {<lbl>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'dev='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'dev='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dev='> name:dev) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'mnt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'mnt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mnt='> name:mnt) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'lbl='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lbl='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lbl='> name:lbl) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {<newfs>} {(${ Id.VSub_Name NANO_NEWFS)} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NANO_LABEL> var_name: NANO_LABEL suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<-L> (${ Id.VSub_Name NANO_LABEL) (${ Id.VSub_Name lbl)} ) right: <Id.Right_DollarBrace '}'> ) } {(${ Id.VSub_Name dev)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <newfs> more_env: [] words: [ {<newfs>} {(${ Id.VSub_Name NANO_NEWFS)} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NANO_LABEL> var_name: NANO_LABEL suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<-L> (${ Id.VSub_Name NANO_LABEL) (${ Id.VSub_Name lbl)} ) right: <Id.Right_DollarBrace '}'> ) } {(${ Id.VSub_Name dev)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [{<mount>} {<-o>} {<async>} {(${ Id.VSub_Name dev)} {(${ Id.VSub_Name mnt)}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <nano_umount> name: nano_umount body: (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <umount> more_env: [] words: [{<umount>} {(${ Id.VSub_Number 1)}] redirects: [] do_fork: T ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <populate_slice> name: populate_slice body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <local> more_env: [] words: [{<local>} {<dev>} {<dir>} {<mnt>} {<lbl>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'dev='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'dev='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dev='> name:dev) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'dir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'dir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dir='> name:dir) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'mnt='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'mnt='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mnt='> name:mnt) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'lbl='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'lbl='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lbl='> name:lbl) op: assign_op.Equal rhs: {($ Id.VSub_Number 4)} ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Creating '> (${ Id.VSub_Name dev) <' (mounting on '> (${ Id.VSub_Name mnt) <')'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <newfs_part> more_env: [] words: [ {<newfs_part>} {(${ Id.VSub_Name dev)} {(${ Id.VSub_Name mnt)} {(${ Id.VSub_Name lbl)} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name dir))} {<-a>} {<-d>} {(DQ (${ Id.VSub_Name dir))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Populating '> (${ Id.VSub_Name lbl) <' from '> (${ Id.VSub_Name dir)) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name dir))}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <find> more_env: [] words: [{<find>} {<.>} {<-print>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-Ev>} {(SQ <'/(CVS|\\.svn|\\.hg|\\.git)'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cpio> more_env: [] words: [{<cpio>} {<-dumpv>} {(${ Id.VSub_Name mnt)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) ] spids: [3448 3473] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <df> more_env: [] words: [{<df>} {<-i>} {(${ Id.VSub_Name mnt)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <nano_umount> more_env: [] words: [{<nano_umount>} {(${ Id.VSub_Name mnt)}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <populate_cfg_slice> name: populate_cfg_slice body: (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <populate_slice> more_env: [] words: [ {<populate_slice>} {(DQ ($ Id.VSub_Number 1))} {(DQ ($ Id.VSub_Number 2))} {(DQ ($ Id.VSub_Number 3))} {(DQ ($ Id.VSub_Number 4))} ] redirects: [] do_fork: T ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <populate_data_slice> name: populate_data_slice body: (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <populate_slice> more_env: [] words: [ {<populate_slice>} {(DQ ($ Id.VSub_Number 1))} {(DQ ($ Id.VSub_Number 2))} {(DQ ($ Id.VSub_Number 3))} {(DQ ($ Id.VSub_Number 4))} ] redirects: [] do_fork: T ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <create_diskimage> name: create_diskimage body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<2>} {(DQ <'build diskimage'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<3>} {(DQ <'log: '> (${ Id.VSub_Name NANO_LOG) <'/_.di'>)}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {($ Id.VSub_DollarName NANO_MEDIASIZE)} {($ Id.VSub_DollarName NANO_IMAGES)} {($ Id.VSub_DollarName NANO_SECTS)} {($ Id.VSub_DollarName NANO_HEADS)} {($ Id.VSub_DollarName NANO_CODESIZE)} {($ Id.VSub_DollarName NANO_CONFSIZE)} {($ Id.VSub_DollarName NANO_DATASIZE)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [ {<awk>} { (SQ <'\n'> <'\t{\n'> <'\t\tprintf "# %s\\n", $0\n'> <'\n'> <'\t\t# size of cylinder in sectors\n'> <'\t\tcs = $3 * $4\n'> <'\n'> <'\t\t# number of full cylinders on media\n'> <'\t\tcyl = int ($1 / cs)\n'> <'\n'> <'\t\t# output fdisk geometry spec, truncate cyls to 1023\n'> <'\t\tif (cyl <= 1023)\n'> <'\t\t\tprint "g c" cyl " h" $4 " s" $3\n'> <'\t\telse\n'> <'\t\t\tprint "g c" 1023 " h" $4 " s" $3\n'> <'\n'> <'\t\tif ($7 > 0) {\n'> <'\t\t\t# size of data partition in full cylinders\n'> <'\t\t\tdsl = int (($7 + cs - 1) / cs)\n'> <'\t\t} else {\n'> <'\t\t\tdsl = 0;\n'> <'\t\t}\n'> <'\n'> <'\t\t# size of config partition in full cylinders\n'> <'\t\tcsl = int (($6 + cs - 1) / cs)\n'> <'\n'> <'\t\tif ($5 == 0) {\n'> <'\t\t\t# size of image partition(s) in full cylinders\n'> <'\t\t\tisl = int ((cyl - dsl - csl) / $2)\n'> <'\t\t} else {\n'> <'\t\t\tisl = int (($5 + cs - 1) / cs)\n'> <'\t\t}\n'> <'\n'> <'\t\t# First image partition start at second track\n'> <'\t\tprint "p 1 165 " $3, isl * cs - $3\n'> <'\t\tc = isl * cs;\n'> <'\n'> <'\t\t# Second image partition (if any) also starts offset one\n'> <'\t\t# track to keep them identical.\n'> <'\t\tif ($2 > 1) {\n'> <'\t\t\tprint "p 2 165 " $3 + c, isl * cs - $3\n'> <'\t\t\tc += isl * cs;\n'> <'\t\t}\n'> <'\n'> <'\t\t# Config partition starts at cylinder boundary.\n'> <'\t\tprint "p 3 165 " c, csl * cs\n'> <'\t\tc += csl * cs\n'> <'\n'> <'\t\t# Data partition (if any) starts at cylinder boundary.\n'> <'\t\tif ($7 > 0) {\n'> <'\t\t\tprint "p 4 165 " c, dsl * cs\n'> <'\t\t} else if ($7 < 0 && $1 > c) {\n'> <'\t\t\tprint "p 4 165 " c, $1 - c\n'> <'\t\t} else if ($1 < c) {\n'> <'\t\t\tprint "Disk space overcommitted by", \\\n'> <'\t\t\t c - $1, "sectors" > "/dev/stderr"\n'> <'\t\t\texit 2\n'> <'\t\t}\n'> <'\n'> <'\t\t# Force slice 1 to be marked active. This is necessary\n'> <'\t\t# for booting the image from a USB device to work.\n'> <'\t\tprint "a 1"\n'> <'\t}\n'> <'\t'> ) } ] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.fdisk'>} ) ] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'IMG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'IMG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IMG='> name:IMG) op: assign_op.Equal rhs: {(${ Id.VSub_Name NANO_DISKIMGDIR) <'/'> (${ Id.VSub_Name NANO_IMGNAME) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MNT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MNT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MNT='> name:MNT) op: assign_op.Equal rhs: {(${ Id.VSub_Name NANO_OBJ) <'/_.mnt'>} ) ] redirects: [] ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name MNT)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name NANO_MD_BACKING))} {<Id.Lit_Equals '='>} {(DQ <swap>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'MD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MD='> name:MD) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <mdconfig> more_env: [] words: [ {<mdconfig>} {<-a>} {<-t>} {<swap>} {<-s>} {(${ Id.VSub_Name NANO_MEDIASIZE)} {<-x>} {(${ Id.VSub_Name NANO_SECTS)} {<-y>} {(${ Id.VSub_Name NANO_HEADS)} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] spids: [3770 3790] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Creating md backing file...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-f>} {(${ Id.VSub_Name IMG)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dd> more_env: [] words: [ {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/zero'>} {<Id.Lit_VarLike 'of='> (${ Id.VSub_Name IMG)} {<Id.Lit_VarLike 'seek='> (${ Id.VSub_Name NANO_MEDIASIZE)} {<Id.Lit_VarLike 'count='> <0>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'MD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MD='> name:MD) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <mdconfig> more_env: [] words: [ {<mdconfig>} {<-a>} {<-t>} {<vnode>} {<-f>} {(${ Id.VSub_Name IMG)} {<-x>} {(${ Id.VSub_Name NANO_SECTS)} {<-y>} {(${ Id.VSub_Name NANO_HEADS)} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <trap> more_env: [] words: [ {<trap>} { (DQ <'echo \'Running exit trap code\' ; df -i '> (${ Id.VSub_Name MNT) <' ; nano_umount '> (${ Id.VSub_Name MNT) <' || true ; mdconfig -d -u '> ($ Id.VSub_DollarName MD) ) } {<1>} {<2>} {<15>} {<EXIT>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <fdisk> more_env: [] words: [ {<fdisk>} {<-i>} {<-f>} {(${ Id.VSub_Name NANO_LOG) <'/_.fdisk'>} {(${ Id.VSub_Name MD)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <fdisk> more_env: [] words: [{<fdisk>} {(${ Id.VSub_Name MD)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {(${ Id.VSub_Name NANO_WORLDDIR) <'/'> (${ Id.VSub_Name NANO_BOOTLOADER) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <boot0cfg> more_env: [] words: [ {<boot0cfg>} {<-B>} {<-b>} {(${ Id.VSub_Name NANO_WORLDDIR) <'/'> (${ Id.VSub_Name NANO_BOOTLOADER) } {(${ Id.VSub_Name NANO_BOOT0CFG)} {(${ Id.VSub_Name MD)} ] redirects: [] do_fork: T ) ] spids: [3965 3982] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {(${ Id.VSub_Name NANO_WORLDDIR) <'/boot/boot'>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <bsdlabel> more_env: [] words: [ {<bsdlabel>} {<-w>} {<-B>} {<-b>} {(${ Id.VSub_Name NANO_WORLDDIR) <'/boot/boot'>} {(${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_SLICE_ROOT)} ] redirects: [] do_fork: T ) ] spids: [4011 4025] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <bsdlabel> more_env: [] words: [ {<bsdlabel>} {<-w>} {(${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_SLICE_ROOT)} ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <bsdlabel> more_env: [] words: [{<bsdlabel>} {(${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_SLICE_ROOT)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <populate_slice> more_env: [] words: [ {<populate_slice>} {<'/dev/'> (${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_ROOT)} {(${ Id.VSub_Name NANO_WORLDDIR)} {(${ Id.VSub_Name MNT)} {(DQ (${ Id.VSub_Name NANO_ROOT))} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [ {<mount>} {<'/dev/'> (${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_ROOT)} {(${ Id.VSub_Name MNT)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Generating mtree...'>)}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name MNT))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mtree> more_env: [] words: [{<mtree>} {<-c>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.mtree'>} ) ] ) (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name MNT))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <du> more_env: [] words: [{<du>} {<-k>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.du'>} ) ] ) (command.Simple blame_tok: <nano_umount> more_env: [] words: [{<nano_umount>} {(DQ (${ Id.VSub_Name MNT))}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NANO_IMAGES)} {<-gt>} {<1>} {<-a>} {($ Id.VSub_DollarName NANO_INIT_IMG2)} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Duplicating to second image...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dd> more_env: [] words: [ {<dd>} {<Id.Lit_VarLike 'conv='> <sparse>} {<Id.Lit_VarLike 'if='> <'/dev/'> (${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_SLICE_ROOT) } {<Id.Lit_VarLike 'of='> <'/dev/'> (${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_SLICE_ALTROOT) } {<Id.Lit_VarLike 'bs='> <64k>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [ {<mount>} {<'/dev/'> (${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_ALTROOT)} {(${ Id.VSub_Name MNT)} ] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [f] iterable: (for_iter.Words words: [ {(${ Id.VSub_Name MNT) <'/etc/fstab'>} {(${ Id.VSub_Name MNT) <'/conf/base/etc/fstab'>} ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-i>} {(DQ )} { (DQ <'s='> (${ Id.VSub_Name NANO_DRIVE) (${ Id.VSub_Name NANO_SLICE_ROOT) <'='> (${ Id.VSub_Name NANO_DRIVE) (${ Id.VSub_Name NANO_SLICE_ALTROOT) <'=g'> ) } {($ Id.VSub_DollarName f)} ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <nano_umount> more_env: [] words: [{<nano_umount>} {(${ Id.VSub_Name MNT)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name NANO_LABEL))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <tunefs> more_env: [] words: [ {<tunefs>} {<-L>} {(${ Id.VSub_Name NANO_LABEL) (DQ (${ Id.VSub_Name NANO_ALTROOT)) } {<'/dev/'> (${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_ALTROOT) } ] redirects: [] do_fork: T ) ] spids: [4335 4350] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] spids: [4191 4213] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <populate_cfg_slice> more_env: [] words: [ {<populate_cfg_slice>} {<'/dev/'> (${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_SLICE_CFG)} {(DQ (${ Id.VSub_Name NANO_CFGDIR))} {(${ Id.VSub_Name MNT)} {(DQ (${ Id.VSub_Name NANO_SLICE_CFG))} ] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName NANO_SLICE_DATA))} {<-a>} {(DQ ($ Id.VSub_DollarName NANO_SLICE_CFG))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName NANO_SLICE_DATA))} {<-a>} {(DQ ($ Id.VSub_DollarName NANO_DATASIZE))} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<2>} {(DQ <'NANO_SLICE_DATA is the same as NANO_SLICE_CFG, fix.'>)} ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [4418 4455] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName NANO_DATASIZE)} {<-ne>} {<0>} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName NANO_SLICE_DATA))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <populate_data_slice> more_env: [] words: [ {<populate_data_slice>} {<'/dev/'> (${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_SLICE_DATA)} {(DQ (${ Id.VSub_Name NANO_DATADIR))} {(${ Id.VSub_Name MNT)} {(DQ (${ Id.VSub_Name NANO_SLICE_DATA))} ] redirects: [] do_fork: T ) ] spids: [4475 4497] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ (${ Id.VSub_Name NANO_MD_BACKING))} {<Id.Lit_Equals '='>} {(DQ <swap>)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(${ Id.VSub_Name NANO_IMAGE_MBRONLY)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Writing out _.disk.mbr...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dd> more_env: [] words: [ {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/'> (${ Id.VSub_Name MD)} {<Id.Lit_VarLike 'of='> (${ Id.VSub_Name NANO_DISKIMGDIR) <'/_.disk.mbr'> } {<Id.Lit_VarLike 'bs='> <512>} {<Id.Lit_VarLike 'count='> <1>} ] redirects: [] do_fork: T ) ] spids: [4554 4565] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Writing out '> (${ Id.VSub_Name NANO_IMGNAME) <...>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <dd> more_env: [] words: [ {<dd>} {<Id.Lit_VarLike 'if='> <'/dev/'> (${ Id.VSub_Name MD)} {<Id.Lit_VarLike 'of='> (${ Id.VSub_Name IMG)} {<Id.Lit_VarLike 'bs='> <64k>} ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Writing out '> (${ Id.VSub_Name NANO_IMGNAME) <...>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <dd> more_env: [] words: [ {<dd>} {<Id.Lit_VarLike 'conv='> <sparse>} {<Id.Lit_VarLike 'if='> <'/dev/'> (${ Id.VSub_Name MD)} {<Id.Lit_VarLike 'of='> (${ Id.VSub_Name IMG)} {<Id.Lit_VarLike 'bs='> <64k>} ] redirects: [] do_fork: T ) ] spids: [4531 4551] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Left_DollarBrace '${'> more_env: [] words: [{(${ Id.VSub_Name do_copyout_partition)}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Writing out _.disk.image...'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <dd> more_env: [] words: [ {<dd>} {<Id.Lit_VarLike 'conv='> <sparse>} {<Id.Lit_VarLike 'if='> <'/dev/'> (${ Id.VSub_Name MD) (${ Id.VSub_Name NANO_SLICE_ROOT) } {<Id.Lit_VarLike 'of='> (${ Id.VSub_Name NANO_DISKIMGDIR) <'/_.disk.image'> } {<Id.Lit_VarLike 'bs='> <64k>} ] redirects: [] do_fork: T ) ] spids: [4666 4674] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <mdconfig> more_env: [] words: [{<mdconfig>} {<-d>} {<-u>} {($ Id.VSub_DollarName MD)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {<->} {<1>} {<2>} {<15>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {<nano_cleanup>} {<EXIT>}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_LOG) <'/_.di'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <last_orders> name: last_orders body: (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <FlashDevice> name: FlashDevice body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-d>} {(${ Id.VSub_Name NANO_TOOLS)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(${ Id.VSub_Name NANO_TOOLS) <'/FlashDevice.sub'>}] redirects: [] do_fork: T ) ] spids: [4820 4834] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <.> more_env: [] words: [ {<.>} {(${ Id.VSub_Name NANO_SRC) <'/'> (${ Id.VSub_Name NANO_TOOLS) <'/FlashDevice.sub'>} ] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <sub_FlashDevice> more_env: [] words: [{<sub_FlashDevice>} {($ Id.VSub_Number 1)} {($ Id.VSub_Number 2)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <UsbDevice> name: UsbDevice body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'a1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'a1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a1='> name:a1) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <tr> more_env: [] words: [{<tr>} {(SQ <'[:upper:]'>)} {(SQ <'[:lower:]'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{($ Id.VSub_DollarName a1)}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <generic-fdd> pattern: (pat.Words words:[{<generic-fdd>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'NANO_HEADS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_HEADS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_HEADS='> name:NANO_HEADS) op: assign_op.Equal rhs: {<64>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_SECTS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_SECTS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_SECTS='> name:NANO_SECTS) op: assign_op.Equal rhs: {<32>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_MEDIASIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_MEDIASIZE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_MEDIASIZE='> name: NANO_MEDIASIZE ) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_Number 2)} right: {<Id.Lit_Digits 1000>} ) right: {<Id.Lit_Digits 1000>} ) right: {<Id.Lit_Digits 512>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <generic> pattern: (pat.Words words:[{<generic>} {<generic-hdd>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'NANO_HEADS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_HEADS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_HEADS='> name:NANO_HEADS) op: assign_op.Equal rhs: {<255>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_SECTS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_SECTS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_SECTS='> name:NANO_SECTS) op: assign_op.Equal rhs: {<63>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_MEDIASIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_MEDIASIZE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_MEDIASIZE='> name: NANO_MEDIASIZE ) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_Number 2)} right: {<Id.Lit_Digits 1000>} ) right: {<Id.Lit_Digits 1000>} ) right: {<Id.Lit_Digits 512>} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Unknown USB flash device'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <cust_comconsole> name: cust_comconsole body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-i>} {(DQ )} {<-e>} {<'/tty'> <Id.Lit_LBracket '['> <du> <Id.Lit_RBracket ']'> <'0/s/off/on/'>} {(${ Id.VSub_Name NANO_WORLDDIR) <'/etc/ttys'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-i>} {(DQ )} {<-e>} {(SQ <'/^ttyv[0-8]/s/\ton/\toff/'>)} {(${ Id.VSub_Name NANO_WORLDDIR) <'/etc/ttys'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name NANO_BOOT2CFG))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name NANO_WORLDDIR) <'/boot.config'>} ) ] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <cust_allow_ssh_root> name: cust_allow_ssh_root body: (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-i>} {(DQ )} {<-e>} {(SQ <'/PermitRootLogin/s/.*/PermitRootLogin yes/'>)} {(${ Id.VSub_Name NANO_WORLDDIR) <'/etc/ssh/sshd_config'>} ] redirects: [] do_fork: T ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <cust_install_files> name: cust_install_files body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <cd> more_env: [] words: [{<cd>} {(DQ (${ Id.VSub_Name NANO_TOOLS) <'/Files'>)}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <find> more_env: [] words: [{<find>} {<.>} {<-print>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<-Ev>} {(SQ <'/(CVS|\\.svn|\\.hg|\\.git)'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <cpio> more_env: [] words: [{<cpio>} {<-Ldumpv>} {(${ Id.VSub_Name NANO_WORLDDIR)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name NANO_CUST_FILES_MTREE))} {<-a>} {<-f>} {(${ Id.VSub_Name NANO_CUST_FILES_MTREE)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <CR> more_env: [] words: [{<CR>} {(DQ <'mtree -eiU -p /'>)}] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name NANO_CUST_FILES_MTREE)} ) ] do_fork: T ) ] spids: [5247 5270] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <cust_pkgng> name: cust_pkgng body: (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name NANO_WORLDDIR) <'/usr/local/etc'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'PKG_CONF='> (DQ (${ Id.VSub_Name NANO_WORLDDIR) <'/usr/local/etc/pkg.conf'>) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <local> more_env: [] words: [ {<local>} {<Id.Lit_VarLike 'PKGCMD='> (DQ <'env ASSUME_ALWAYS_YES=YES PKG_DBDIR='> (${ Id.VSub_Name NANO_PKG_META_BASE) <'/pkg SIGNATURE_TYPE=none /usr/sbin/pkg'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <touch> more_env: [] words: [{<touch>} {(${ Id.VSub_Name PKG_CONF)}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {<-Eiq>} {(SQ <'^PKG_DBDIR:.*'>)} {(${ Id.VSub_Name PKG_CONF)} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <sed> more_env: [] words: [ {<sed>} {<-i>} {<-e>} {(DQ <Id.Lit_BadBackslash '\\'> <'|^PKG_DBDIR:.*|Is||PKG_DBDIR: '>) (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name NANO_PKG_META_BASE) <'/pkg'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (DQ <'|'>) } {(${ Id.VSub_Name PKG_CONF)} ] redirects: [] do_fork: T ) ] spids: [5352 5367] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'PKG_DBDIR: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (${ Id.VSub_Name NANO_PKG_META_BASE) <'/pkg'> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ) } ] redirects: [ (Redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name PKG_CONF)} ) ] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(${ Id.VSub_Name NANO_PACKAGE_DIR)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'DONE 0 packages'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [5425 5440] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [x] iterable: (for_iter.Words words: [ { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <find> more_env: [] words: [ {<find>} {<-s>} {(${ Id.VSub_Name NANO_PACKAGE_DIR)} {<-iname>} {(SQ <'pkg-*'>)} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike '_NANO_PKG_PACKAGE='> pairs: [ (AssignPair left: <Id.Lit_VarLike '_NANO_PKG_PACKAGE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike '_NANO_PKG_PACKAGE='> name: _NANO_PKG_PACKAGE ) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <basename> more_env: [] words: [{<basename>} {(DQ ($ Id.VSub_DollarName x))}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name _NANO_PKG_PACKAGE))} {<-o>} {<Id.KW_Bang '!'>} {<-f>} { (DQ (${ Id.VSub_Name NANO_PACKAGE_DIR) <'/'> (${ Id.VSub_Name _NANO_PKG_PACKAGE) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'FAILED: need a pkg/ package for bootstrapping'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [5506 5537] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_PACKAGE_LIST='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_PACKAGE_LIST='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_PACKAGE_LIST='> name: NANO_PACKAGE_LIST ) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name _NANO_PKG_PACKAGE) <' '> (${ Id.VSub_Name NANO_PACKAGE_LIST) ) } ) ] redirects: [] ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(${ Id.VSub_Name NANO_WORLDDIR) <'/_.p'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <mount> more_env: [] words: [ {<mount>} {<-t>} {<nullfs>} {<-o>} {<noatime>} {<-o>} {<ro>} {(${ Id.VSub_Name NANO_PACKAGE_DIR)} {(${ Id.VSub_Name NANO_WORLDDIR) <'/_.p'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <trap> more_env: [] words: [ {<trap>} { (DQ <'umount '> (${ Id.VSub_Name NANO_WORLDDIR) <'/_.p ; rm -rf '> (${ Id.VSub_Name NANO_WORLDDIR) <'/_.p'> ) } {<1>} {<2>} {<15>} {<EXIT>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'todo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'todo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'todo='> name:todo) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name NANO_PACKAGE_LIST))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <awk> more_env: [] words: [{<awk>} {(SQ <'{ print NF }'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'=== TODO: '> ($ Id.VSub_DollarName todo))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ (${ Id.VSub_Name NANO_PACKAGE_LIST))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'==='>)}] redirects: [] do_fork: T ) (command.ForEach keyword: <Id.KW_For for> iter_names: [_PKG] iterable: (for_iter.Words words:[{(${ Id.VSub_Name NANO_PACKAGE_LIST)}]) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <CR> more_env: [] words: [ {<CR>} {(DQ (${ Id.VSub_Name PKGCMD) <' add /_.p/'> (${ Id.VSub_Name _PKG))} ] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.Simple blame_tok: <CR0> more_env: [] words: [{<CR0>} {(DQ (${ Id.VSub_Name PKGCMD) <' info'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {<->} {<1>} {<2>} {<15>} {<EXIT>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <umount> more_env: [] words: [{<umount>} {(${ Id.VSub_Name NANO_WORLDDIR) <'/_.p'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <rm> more_env: [] words: [{<rm>} {<-rf>} {(${ Id.VSub_Name NANO_WORLDDIR) <'/_.p'>}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <early_customize_cmd> name: early_customize_cmd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'NANO_EARLY_CUSTOMIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_EARLY_CUSTOMIZE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_EARLY_CUSTOMIZE='> name: NANO_EARLY_CUSTOMIZE ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName NANO_EARLY_CUSTOMIZE) <' '> ($ Id.VSub_Star '*'))} ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <customize_cmd> name: customize_cmd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'NANO_CUSTOMIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_CUSTOMIZE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_CUSTOMIZE='> name:NANO_CUSTOMIZE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName NANO_CUSTOMIZE) <' '> ($ Id.VSub_Star '*'))} ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <late_customize_cmd> name: late_customize_cmd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'NANO_LATE_CUSTOMIZE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_LATE_CUSTOMIZE='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_LATE_CUSTOMIZE='> name: NANO_LATE_CUSTOMIZE ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName NANO_LATE_CUSTOMIZE) <' '> ($ Id.VSub_Star '*'))} ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <pprint> name: pprint body: (command.Subshell left: <Id.Op_LParen _> child: (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<-le>} {($ Id.VSub_DollarName PPLEVEL)} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'runtime='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'runtime='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'runtime='> name:runtime) op: assign_op.Equal rhs: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.Binary op_id: Id.Arith_Minus left: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <date> more_env: [] words: [ {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>} ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } right: {($ Id.VSub_DollarName NANO_STARTTIME)} ) right: <Id.Right_DollarDParen _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {(DQ <'%s %.'> (${ Id.VSub_Number 1) <'s %s'> <Id.Lit_BadBackslash '\\'> <n>)} { (DQ (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <date> more_env: [] words: [ {<date>} {<-u>} {<-r>} {($ Id.VSub_DollarName runtime)} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <H> <Id.Lit_Colon ':'> <Id.Lit_Other '%'> <M> <Id.Lit_Colon ':'> <Id.Lit_Other '%'> <S> } ] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) ) } {(DQ <'#####'>)} {(DQ ($ Id.VSub_Number 2))} ] redirects: [ (Redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<3>} ) ] do_fork: T ) ] spids: [5879 5894] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) right: <Id.Right_Subshell _> redirects: [] ) ) (command.ShFunction name_tok: <usage> name: usage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Usage: '> ($ Id.VSub_Number 0) <' [-bfhiKknqvwX] [-c config_file]'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-b\tsuppress builds (both kernel and world)'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-c\tspecify config file'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-f\tsuppress code slice extraction'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-h\tprint this help summary page'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-i\tsuppress disk image build'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-K\tsuppress installkernel'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-k\tsuppress buildkernel'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-n\tadd -DNO_CLEAN to buildworld, buildkernel, etc'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-q\tmake output more quiet'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-v\tmake output more verbose'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-w\tsuppress buildworld'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'\t-X\tmake native-xtools'>)}] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [(Redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <export_var> name: export_var body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'var='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'var='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'var='> name:var) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [ {<eval>} {<Id.Lit_VarLike 'val='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) ($ Id.VSub_DollarName var) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pprint> more_env: [] words: [ {<pprint>} {<3>} { (DQ <'Setting variable: '> ($ Id.VSub_DollarName var) <'='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName val) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {($ Id.VSub_Number 1)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <set_defaults_and_export> name: set_defaults_and_export body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [ {<Id.Lit_Colon ':'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NANO_OBJ> var_name: NANO_OBJ suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {<Id.Lit_Slash '/'> <usr> <Id.Lit_Slash '/'> <obj> <Id.Lit_Slash '/'> <nanobsd.> (${ Id.VSub_Name NANO_NAME) } ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [ {<Id.Lit_Colon ':'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name MAKEOBJDIRPREFIX> var_name: MAKEOBJDIRPREFIX suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {(${ Id.VSub_Name NANO_OBJ)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [ {<Id.Lit_Colon ':'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NANO_DISKIMGDIR> var_name: NANO_DISKIMGDIR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {(${ Id.VSub_Name NANO_OBJ)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [ {<Id.Lit_Colon ':'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NANO_WORLDDIR> var_name: NANO_WORLDDIR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {(${ Id.VSub_Name NANO_OBJ) <Id.Lit_Slash '/'> <_.w>} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [ {<Id.Lit_Colon ':'>} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name NANO_LOG> var_name: NANO_LOG suffix_op: (suffix_op.Unary op: <Id.VTest_ColonEquals _> arg_word: {(${ Id.VSub_Name NANO_OBJ)} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_MAKE_CONF_BUILD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_MAKE_CONF_BUILD='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_MAKE_CONF_BUILD='> name: NANO_MAKE_CONF_BUILD ) op: assign_op.Equal rhs: {(${ Id.VSub_Name MAKEOBJDIRPREFIX) <'/make.conf.build'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_MAKE_CONF_INSTALL='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_MAKE_CONF_INSTALL='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'NANO_MAKE_CONF_INSTALL='> name: NANO_MAKE_CONF_INSTALL ) op: assign_op.Equal rhs: {(${ Id.VSub_Name NANO_OBJ) <'/make.conf.install'>} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name NANO_LABEL))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_DRIVE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_DRIVE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_DRIVE='> name:NANO_DRIVE) op: assign_op.Equal rhs: {(DQ <'ufs/'> (${ Id.VSub_Name NANO_LABEL))} ) ] redirects: [] ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ (${ Id.VSub_Name NANO_TOOLS))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-d>} {(DQ (${ Id.VSub_Name NANO_SRC) <'/'> (${ Id.VSub_Name NANO_TOOLS))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_TOOLS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_TOOLS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_TOOLS='> name:NANO_TOOLS) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name NANO_SRC) <'/'> (${ Id.VSub_Name NANO_TOOLS))} ) ] redirects: [] ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name NANO_NOPRIV_BUILD))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-z>} {(DQ (${ Id.VSub_Name NANO_METALOG))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_METALOG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_METALOG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_METALOG='> name:NANO_METALOG) op: assign_op.Equal rhs: {(${ Id.VSub_Name NANO_OBJ) <'/_.metalog'>} ) ] redirects: [] ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _> <Id.Op_DAmp _> <Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'NANO_STARTTIME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'NANO_STARTTIME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NANO_STARTTIME='> name:NANO_STARTTIME) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_Backtick '`'> child: (command.Simple blame_tok: <date> more_env: [] words: [{<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <s>}] redirects: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <pprint> more_env: [] words: [{<pprint>} {<3>} {(DQ <'Exporting NanoBSD variables'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<MAKEOBJDIRPREFIX>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_ARCH>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_CODESIZE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_CONFSIZE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_CUSTOMIZE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_DATASIZE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_DRIVE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_HEADS>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_IMAGES>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_IMGNAME>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_MAKE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_MAKE_CONF_BUILD>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_MAKE_CONF_INSTALL>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_MEDIASIZE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_NAME>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_NEWFS>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_OBJ>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_PMAKE>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_SECTS>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_SRC>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_TOOLS>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_WORLDDIR>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_BOOT0CFG>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_BOOTLOADER>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_LABEL>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_MODULES>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_NOPRIV_BUILD>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_METALOG>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<NANO_LOG>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<SRCCONF>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <export_var> more_env: [] words: [{<export_var>} {<SRC_ENV_CONF>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )