(BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_BRANCH='> name:GIT_BRANCH) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name GIT_BRANCH> var_name: GIT_BRANCH suffix_op: (suffix_op.Unary op:<Id.VTest_ColonEquals _> arg_word:{<master>}) right: <Id.Right_DollarBrace '}'> ) } spids: [39] ) ] redirects: [] ) (C {<echo>} {<-e>} {(DQ <'Git Branch: '> ($ Id.VSub_DollarName GIT_BRANCH))}) (C {<cd>} {(DQ ($ Id.VSub_DollarName HOME))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName UID)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} { (SQ < 'Error: Root privileges required. Please run the command with "sudo"\\nIn case install the "sudo" package with root privileges: #apt-get install sudo\\n' > ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [86 100] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<echo>} {(SQ <'Acquire::ForceIPv4 "true";'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/apt/apt.conf.d/99-dietpi-force-ipv4'>} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a_MIN_APT_PREREQS='> name:a_MIN_APT_PREREQS) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [{(SQ <wget>)} {(SQ <ca-certificates>)} {(SQ <locales>)}] ) } spids: [143] ) ] redirects: [] ) (command.Simple words: [{<rm>} {<'/etc/apt/sources.list.d/deb-multimedia.list'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<apt-get>} {<clean>}) (C {<apt-get>} {<update>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name a_MIN_APT_PREREQS> var_name: a_MIN_APT_PREREQS prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Unary op_id: Id.Arith_Bang child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} { (DQ <'^'> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name a_MIN_APT_PREREQS> var_name: a_MIN_APT_PREREQS bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName i)} ) right: <Id.Right_DollarBrace '}'> ) <'[[:space:]]'> ) } ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<apt-get>} {<install>} {<-y>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name a_MIN_APT_PREREQS> var_name: a_MIN_APT_PREREQS bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName i)}) right: <Id.Right_DollarBrace '}'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} { (DQ <'Error: Unable to install '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name a_MIN_APT_PREREQS> var_name: a_MIN_APT_PREREQS bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName i)}) right: <Id.Right_DollarBrace '}'> ) <', please try to install it manually with'> <Id.Lit_BadBackslash '\\'> <'n - apt-get install -y '> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name a_MIN_APT_PREREQS> var_name: a_MIN_APT_PREREQS bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName i)}) right: <Id.Right_DollarBrace '}'> ) ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [275 289] ) ] else_action: [] redirects: [] ) ] spids: [222 257] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (C {<unset>} {<a_MIN_APT_PREREQS>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe Id.Op_DAmp Id.Op_DPipe] children: [ (C {<grep>} {<-q>} {(SQ <'^[[:blank:]]*prefer-family ='>)} {<'/etc/wgetrc'>}) (C {<sed>} {<-i>} {(SQ <'/^[[:blank:]]*prefer-family =/c\\prefer-family = IPv4'>)} {<'/etc/wgetrc'>} ) (C {<grep>} {<-q>} {(SQ <'^[[:blank:]#;]*prefer-family ='>)} {<'/etc/wgetrc'>}) (C {<sed>} {<-i>} {(SQ <'/^[[:blank:]#;]*prefer-family =/c\\prefer-family = IPv4'>)} {<'/etc/wgetrc'>} ) (command.Simple words: [{<echo>} {(SQ <'prefer-family = IPv4'>)}] redirects: [(redir op:<Id.Redir_DGreat '>>'> loc:(redir_loc.Fd fd:1) arg:{<'/etc/wgetrc'>})] more_env: [] do_fork: T ) ] ) (command.Simple words: [{<echo>} {(SQ <'en_GB.UTF-8 UTF-8'>)}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/etc/locale.gen'>})] more_env: [] do_fork: T ) (C {<dpkg-reconfigure>} {<-f>} {<noninteractive>} {<locales>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} {(SQ <'Error: Locale generation failed. Aborting...\\n'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [449 463] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 501 stdin_parts: [ < '# Force locale on remote access, especially via dropbear, where overwriting server locale by SSH client cannot be suppressed:\n' > <'export LANG=en_GB.UTF-8\n'> <'export LC_ALL=en_GB.UTF-8\n'> <'export LANGUAGE=en_GB:en\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/profile.d/99-dietpi-force-locale.sh'>} ) ] more_env: [] do_fork: T ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<'/etc/profile.d/99-dietpi-force-locale.sh'>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LANG='> name:LANG) op: assign_op.Equal rhs: {<en_GB.UTF-8>} spids: [516] ) ] redirects: [] ) (C {<wget>} {<https> <Id.Lit_Colon ':'> <'//raw.githubusercontent.com/Fourdee/DietPi/'> ($ Id.VSub_DollarName GIT_BRANCH) <'/dietpi/func/dietpi-globals'> } {<-O>} {<dietpi-globals>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} {(SQ <'Error: Unable to download dietpi-globals. Aborting...\\n'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [554 568] ) ] else_action: [] redirects: [] ) (C {<chmod>} {<Id.Lit_Other '+'> <x>} {<dietpi-globals>}) (C {<.>} {<'./dietpi-globals'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_QMark '?')} right: {<Id.Lit_Digits 0>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} {(SQ <'Error: Unable to load dietpi-globals. Aborting...\\n'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [608 622] ) ] else_action: [] redirects: [] ) (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-PREP_SYSTEM_FOR_DIETPI>)}) (C {<export>} {<Id.Lit_VarLike 'G_DISTRO='> <0>}) (C {<export>} {<Id.Lit_VarLike 'G_DISTRO_NAME='> (SQ <NULL>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DISTRO_TARGET='> name:DISTRO_TARGET) op: assign_op.Equal rhs: {<0>} spids: [673] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DISTRO_TARGET_NAME='> name:DISTRO_TARGET_NAME) op: assign_op.Equal rhs: {(SQ )} spids: [677] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<grep>} {<-q>} {(SQ <wheezy>)} {<'/etc/os-release'>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO='> name:G_DISTRO) op: assign_op.Equal rhs: {<2>} spids: [699] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO_NAME='> name:G_DISTRO_NAME) op: assign_op.Equal rhs: {(SQ <wheezy>)} spids: [703] ) ] redirects: [] ) ] spids: [682 695] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<grep>} {<-q>} {(SQ <jessie>)} {<'/etc/os-release'>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO='> name:G_DISTRO) op: assign_op.Equal rhs: {<3>} spids: [727] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO_NAME='> name:G_DISTRO_NAME) op: assign_op.Equal rhs: {(SQ <jessie>)} spids: [731] ) ] redirects: [] ) ] spids: [710 723] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<grep>} {<-q>} {(SQ <stretch>)} {<'/etc/os-release'>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO='> name:G_DISTRO) op: assign_op.Equal rhs: {<4>} spids: [755] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO_NAME='> name:G_DISTRO_NAME) op: assign_op.Equal rhs: {(SQ <stretch>)} spids: [759] ) ] redirects: [] ) ] spids: [738 751] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<grep>} {<-q>} {(SQ <buster>)} {<'/etc/os-release'>}) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO='> name:G_DISTRO) op: assign_op.Equal rhs: {<5>} spids: [783] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO_NAME='> name:G_DISTRO_NAME) op: assign_op.Equal rhs: {(SQ <buster>)} spids: [787] ) ] redirects: [] ) ] spids: [766 779] ) ] else_action: [ (C {<echo>} {<-e>} {(SQ <'Error: Unknown or unsupported distribution version. Aborting...\\n'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'G_HW_ARCH_DESCRIPTION='> name: G_HW_ARCH_DESCRIPTION ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>} {<-m>}) right: <Id.Eof_RParen _> ) } spids: [825] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName G_HW_ARCH_DESCRIPTION))} {<Id.Lit_Equals '='>} {(DQ <armv6l>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_ARCH='> name:G_HW_ARCH) op: assign_op.Equal rhs: {<1>} spids: [854] ) ] redirects: [] ) ] spids: [833 850] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName G_HW_ARCH_DESCRIPTION))} {<Id.Lit_Equals '='>} {(DQ <armv7l>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_ARCH='> name:G_HW_ARCH) op: assign_op.Equal rhs: {<2>} spids: [880] ) ] redirects: [] ) ] spids: [859 876] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName G_HW_ARCH_DESCRIPTION))} {<Id.Lit_Equals '='>} {(DQ <aarch64>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_ARCH='> name:G_HW_ARCH) op: assign_op.Equal rhs: {<3>} spids: [906] ) ] redirects: [] ) ] spids: [885 902] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName G_HW_ARCH_DESCRIPTION))} {<Id.Lit_Equals '='>} {(DQ <x86_64>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_ARCH='> name:G_HW_ARCH) op: assign_op.Equal rhs: {<10>} spids: [932] ) ] redirects: [] ) ] spids: [911 928] ) ] else_action: [ (C {<echo>} {<-e>} { (DQ <'Error: Unknown or unsupported CPU architecture '> ($ Id.VSub_DollarName G_HW_ARCH_DESCRIPTION) <'. Aborting...'> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INTERNET_ADDRESS='> name:INTERNET_ADDRESS) op: assign_op.Equal rhs: {(SQ )} spids: [966] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_BACKTITLE='> name:WHIP_BACKTITLE) op: assign_op.Equal rhs: {(SQ <DietPi-Prep>)} spids: [976] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {<0>} spids: [982] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_DESC='> name:WHIP_DESC) op: assign_op.Equal rhs: {<0>} spids: [986] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_MENU_ARRAY='> name:WHIP_MENU_ARRAY) op: assign_op.Equal rhs: {<0>} spids: [990] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_RETURN_VALUE='> name:WHIP_RETURN_VALUE) op: assign_op.Equal rhs: {<0>} spids: [994] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_DEFAULT_ITEM='> name:WHIP_DEFAULT_ITEM) op: assign_op.Equal rhs: {<0>} spids: [998] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_OPTION='> name:WHIP_OPTION) op: assign_op.Equal rhs: {<0>} spids: [1002] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_CHOICE='> name:WHIP_CHOICE) op: assign_op.Equal rhs: {<0>} spids: [1006] ) ] redirects: [] ) (command.ShFunction name: Run_Whiptail body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_OPTION='> name:WHIP_OPTION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Simple words: [ {<whiptail>} {<--title>} {(DQ ($ Id.VSub_DollarName WHIP_TITLE))} {<--menu>} {(DQ ($ Id.VSub_DollarName WHIP_DESC))} {<--default-item>} {(DQ ($ Id.VSub_DollarName WHIP_DEFAULT_ITEM))} {<--backtitle>} {(DQ ($ Id.VSub_DollarName WHIP_BACKTITLE))} {<24>} {<85>} {<12>} { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name WHIP_MENU_ARRAY> var_name: WHIP_MENU_ARRAY bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '3>&'> loc: (redir_loc.Fd fd:3) arg: {<1>} ) (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<3>} ) ] more_env: [] do_fork: T ) right: <Id.Eof_RParen _> ) } spids: [1017] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_CHOICE='> name:WHIP_CHOICE) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [1071] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WHIP_CHOICE)} right: {<Id.Lit_Digits 0>} ) redirects: [] ) (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName WHIP_OPTION))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_RETURN_VALUE='> name: WHIP_RETURN_VALUE ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WHIP_OPTION)} spids: [1106] ) ] redirects: [] ) ] spids: [1075 1102] ) ] else_action: [ (C {<G_DIETPI-NOTIFY>} {<1>} {(SQ <'No choices detected, aborting...'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] redirects: [] ) (C {<unset>} {<WHIP_MENU_ARRAY>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<echo>} {<-e>} {(SQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Step 0: Detecting existing DietPi system:'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<systemctl>} {<is-active>} {<dietpi-ramdisk>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^active'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'DietPi system found, running pre-prep'>)}) (C {<'/DietPi/dietpi/dietpi-services'>} {<stop>}) (C {<G_RUN_CMD>} {<systemctl>} {<stop>} {<dietpi-ramlog>}) (C {<G_RUN_CMD>} {<systemctl>} {<stop>} {<dietpi-ramdisk>}) (C {<rm>} {<-R>} {<'/DietPi/'> <Id.Lit_Star '*'>}) (C {<rm>} {<-R>} {<'/boot/dietpi'>}) (command.Simple words: [{<rm>} {<-R>} {<'/mnt/dietpi-backup'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/mnt/dietpi-sync'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/mnt/dietpi_userdata'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/etc/dietpi'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/var/lib/dietpi'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/var/tmp/dietpi'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/root/DietPi-Automation.log'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/boot/Automation_Format_My_Usb_Drive'>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) ] spids: [1220 1248] ) ] else_action: [(C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Non-DietPi system'>)})] redirects: [] ) (C {<echo>} {<-e>} {(SQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Step 1: Initial prep to allow this script to function:'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Updating APT:'>)}) (C {<G_RUN_CMD>} {<mkdir>} {<-p>} {<'/var/tmp/dietpi/logs'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Installing core packages, required for next stage of this script:'>)} ) (C {<G_AGI>} {<apt-transport-https>} {<unzip>} {<whiptail>}) (C {<echo>} {<-e>} {(SQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Step 2: Hardware selection:'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Hardware selection:'>)} spids: [1550] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_DESC='> name:WHIP_DESC) op: assign_op.Equal rhs: { (SQ < 'Please select the current device this is being installed on:\\n - NB: Select "Generic device" if not listed.' > ) } spids: [1556] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_DEFAULT_ITEM='> name:WHIP_DEFAULT_ITEM) op: assign_op.Equal rhs: {<22>} spids: [1562] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_MENU_ARRAY='> name:WHIP_MENU_ARRAY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ )} { (SQ < '────Other──────────────────────────────' > ) } {(SQ <22>)} {(SQ <'Generic device (unknown to DietPi)'>)} {(SQ )} { (SQ < '────SBC────────────────────────────────' > ) } {(SQ <52>)} {(SQ <'Asus Tinker Board'>)} {(SQ <51>)} {(SQ <'BananaPi Pro (Lemaker)'>)} {(SQ <50>)} {(SQ <'BananaPi M2+ (sinovoip)'>)} {(SQ <71>)} {(SQ <'Beagle Bone Black'>)} {(SQ <66>)} {(SQ <'NanoPi M1 Plus'>)} {(SQ <65>)} {(SQ <'NanoPi NEO 2'>)} {(SQ <64>)} {(SQ <'NanoPi NEO Air'>)} {(SQ <63>)} {(SQ <'NanoPi M1/T1'>)} {(SQ <62>)} {(SQ <'NanoPi M3/T3'>)} {(SQ <61>)} {(SQ <'NanoPi M2/T2'>)} {(SQ <60>)} {(SQ <'NanoPi Neo'>)} {(SQ <13>)} {(SQ <'Odroid U3'>)} {(SQ <12>)} {(SQ <'Odroid C2'>)} {(SQ <11>)} {(SQ <'Odroid XU3/4/HC1'>)} {(SQ <10>)} {(SQ <'Odroid C1'>)} {(SQ <38>)} {(SQ <'OrangePi PC 2'>)} {(SQ <37>)} {(SQ <'OrangePi Prime'>)} {(SQ <36>)} {(SQ <'OrangePi Win'>)} {(SQ <35>)} {(SQ <'OrangePi Zero Plus 2 (H3/H5)'>)} {(SQ <34>)} {(SQ <'OrangePi Plus'>)} {(SQ <33>)} {(SQ <'OrangePi Lite'>)} {(SQ <32>)} {(SQ <'OrangePi Zero (H2+)'>)} {(SQ <31>)} {(SQ <'OrangePi One'>)} {(SQ <30>)} {(SQ <'OrangePi PC'>)} {(SQ <40>)} {(SQ <'Pine A64'>)} {(SQ <3>)} {(SQ <'Raspberry Pi 3'>)} {(SQ <2>)} {(SQ <'Raspberry Pi 2'>)} {(SQ <1>)} {(SQ <'Raspberry Pi 1/Zero (512mb)'>)} {(SQ <0>)} {(SQ <'Raspberry Pi 1 (256mb)'>)} {(SQ <43>)} {(SQ <Rock64>)} {(SQ <70>)} {(SQ <'Sparky SBC'>)} {(SQ )} { (SQ < '────PC─────────────────────────────────' > ) } {(SQ <21>)} {(SQ <'x86_64 Native PC'>)} {(SQ <20>)} {(SQ <'x86_64 VMware/VirtualBox'>)} ] ) } spids: [1566] ) ] redirects: [] ) (C {<Run_Whiptail>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_HW_MODEL='> name:G_HW_MODEL) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WHIP_RETURN_VALUE)} spids: [1909] ) ] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Setting G_HW_MODEL index of: '> ($ Id.VSub_DollarName G_HW_MODEL))} ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'CPU ARCH = '> ($ Id.VSub_DollarName G_HW_ARCH) <' : '> ($ Id.VSub_DollarName G_HW_ARCH_DESCRIPTION) ) } ) (command.Simple words: [{<echo>} {<-e>} {(DQ ($ Id.VSub_DollarName G_HW_MODEL))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/.dietpi_hw_model_identifier'>} ) ] more_env: [] do_fork: T ) (C {<echo>} {<-e>} {(SQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Step 3: Distro selection:'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'Distro selection:'>)} spids: [1995] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_DESC='> name:WHIP_DESC) op: assign_op.Equal rhs: { (DQ < 'Please select a distro to install on this system. Selecting a distro that is older than the current installed on system, is not supported.' > <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'nCurrently installed:'> <Id.Lit_BadBackslash '\\'> <'n - '> ($ Id.VSub_DollarName G_DISTRO) <' '> ($ Id.VSub_DollarName G_DISTRO_NAME) ) } spids: [2001] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_DEFAULT_ITEM='> name:WHIP_DEFAULT_ITEM) op: assign_op.Equal rhs: {($ Id.VSub_DollarName G_DISTRO)} spids: [2016] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DISTRO_LIST_ARRAY='> name:DISTRO_LIST_ARRAY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <3>)} {(SQ <'Jessie (oldstable, just if you need to avoid upgrade to current release)'>)} {(SQ <4>)} {(SQ <'Stretch (current stable release, recommended)'>)} {(SQ <5>)} {(SQ <'Buster (testing only, not officially supported)'>)} ] ) } spids: [2020] ) ] redirects: [] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DISTRO_LIST_ARRAY> var_name: DISTRO_LIST_ARRAY prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 2>} ) ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'temp_distro_available='> name: temp_distro_available ) op: assign_op.Equal rhs: {<1>} spids: [2100] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'temp_distro_index='> name: temp_distro_index ) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {($ Id.VSub_DollarName i)} right: {<Id.Lit_Digits 3>} ) ) } spids: [2104] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName temp_distro_index)} right: {($ Id.VSub_DollarName G_DISTRO)} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Disabled Distro downgrade: index '> ($ Id.VSub_DollarName temp_distro_index) ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'temp_distro_available='> name: temp_distro_available ) op: assign_op.Equal rhs: {<0>} spids: [2150] ) ] redirects: [] ) ] spids: [2122 2136] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: {($ Id.VSub_DollarName temp_distro_available)} redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'WHIP_MENU_ARRAY+='> name: WHIP_MENU_ARRAY ) op: assign_op.PlusEqual rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DISTRO_LIST_ARRAY> var_name: DISTRO_LIST_ARRAY bracket_op: (bracket_op.ArrayIndex expr: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName i)} right: {<Id.Lit_Digits 2>} ) ) } ) right: <Id.Right_DollarBrace '}'> ) ) } { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name DISTRO_LIST_ARRAY> var_name: DISTRO_LIST_ARRAY bracket_op: (bracket_op.ArrayIndex expr: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Star left: {($ Id.VSub_DollarName i)} right: {<Id.Lit_Digits 2>} ) right: {<Id.Lit_Digits 1>} ) ) } ) right: <Id.Right_DollarBrace '}'> ) ) } ] ) } spids: [2177] ) ] redirects: [] ) ] spids: [2163 2173] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (C {<unset>} {<DISTRO_LIST_ARRAY>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name WHIP_MENU_ARRAY> var_name: WHIP_MENU_ARRAY suffix_op: (suffix_op.Unary op:<Id.VTest_Plus _> arg_word:{<x>}) right: <Id.Right_DollarBrace '}'> ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<1>} {(SQ <'Error: No available Distros for this system. Aborting...'>)} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [2244 2259] ) ] else_action: [] redirects: [] ) (C {<Run_Whiptail>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DISTRO_TARGET='> name:DISTRO_TARGET) op: assign_op.Equal rhs: {($ Id.VSub_DollarName WHIP_RETURN_VALUE)} spids: [2285] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName DISTRO_TARGET)} right: {<Id.Lit_Digits 3>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DISTRO_TARGET_NAME='> name: DISTRO_TARGET_NAME ) op: assign_op.Equal rhs: {(SQ <jessie>)} spids: [2307] ) ] redirects: [] ) ] spids: [2289 2303] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName DISTRO_TARGET)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DISTRO_TARGET_NAME='> name: DISTRO_TARGET_NAME ) op: assign_op.Equal rhs: {(SQ <stretch>)} spids: [2332] ) ] redirects: [] ) ] spids: [2314 2328] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName DISTRO_TARGET)} right: {<Id.Lit_Digits 5>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'DISTRO_TARGET_NAME='> name: DISTRO_TARGET_NAME ) op: assign_op.Equal rhs: {(SQ <buster>)} spids: [2357] ) ] redirects: [] ) ] spids: [2339 2353] ) ] else_action: [] redirects: [] ) (C {<echo>} {<-e>} {(SQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Step 4: APT configuration:'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Removing conflicting apt sources.list.d'>)}) (command.Simple words: [{<rm>} {<'/etc/apt/sources.list.d/deb-multimedia.list'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Setting APT sources.list: '> ($ Id.VSub_DollarName DISTRO_TARGET_NAME) <' '> ($ Id.VSub_DollarName DISTRO_TARGET) ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 2497 stdin_parts: [ <'deb https://www.mirrorservice.org/sites/archive.raspbian.org/raspbian '> ($ Id.VSub_DollarName DISTRO_TARGET_NAME) <' main contrib non-free rpi\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/apt/sources.list'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 2514 stdin_parts: [ <'deb https://archive.raspberrypi.org/debian/ '> ($ Id.VSub_DollarName DISTRO_TARGET_NAME) <' main ui\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/apt/sources.list.d/raspi.list'>} ) ] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName DISTRO_TARGET)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) (C {<sed>} {<-i>} {(DQ <'s/'> ($ Id.VSub_DollarName DISTRO_TARGET_NAME) <'/stretch/'>)} {<'/etc/apt/sources.list.d/raspi.list'>} ) ] ) ] spids: [2465 2479] ) ] else_action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 2579 stdin_parts: [ <'deb https://deb.debian.org/debian/ '> ($ Id.VSub_DollarName DISTRO_TARGET_NAME) <' main contrib non-free\n'> <'deb https://deb.debian.org/debian/ '> ($ Id.VSub_DollarName DISTRO_TARGET_NAME) <'-updates main contrib non-free\n'> <'deb https://deb.debian.org/debian-security/ '> ($ Id.VSub_DollarName DISTRO_TARGET_NAME) <'/updates main contrib non-free\n'> <'deb https://deb.debian.org/debian/ '> ($ Id.VSub_DollarName DISTRO_TARGET_NAME) <'-backports main contrib non-free\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/apt/sources.list'>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_DISTRO)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<sed>} {<-i>} {(SQ <'s/https:/http:/g'>)} {<'/etc/apt/sources.list'>})] spids: [2586 2600] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName DISTRO_TARGET)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<sed>} {<-i>} {(SQ <'/backports/d'>)} {<'/etc/apt/sources.list'>})] spids: [2620 2634] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Updating APT for '> ($ Id.VSub_DollarName DISTRO_TARGET_NAME) <':'>)} ) (C {<G_RUN_CMD>} {<apt-get>} {<clean>}) (C {<G_AGUP>}) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ <'Marking all packages as auto installed first, to allow effective autoremove afterwards'> ) } ) (C {<G_RUN_CMD>} {<apt-mark>} {<auto>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<apt-mark>} {<showmanual>}) right: <Id.Eof_RParen _> ) } ) (C {<G_DIETPI-NOTIFY>} {<2>} { (DQ < 'Temporary disable automatic recommends/suggests installation and allow them to be autoremoved:' > ) } ) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='> (SQ <'/etc/apt/apt.conf.d/99-dietpi-norecommends'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 2763 stdin_parts: [ <'APT::Install-Recommends '> <Id.Right_DoubleQuote '"'> <false> <Id.Right_DoubleQuote '"'> <';\n'> <'APT::Install-Suggests '> <Id.Right_DoubleQuote '"'> <false> <Id.Right_DoubleQuote '"'> <';\n'> <'APT::AutoRemove::RecommendsImportant '> <Id.Right_DoubleQuote '"'> <false> <Id.Right_DoubleQuote '"'> <';\n'> <'APT::AutoRemove::SuggestsImportant '> <Id.Right_DoubleQuote '"'> <false> <Id.Right_DoubleQuote '"'> <';\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND)} ) ] more_env: [] do_fork: T ) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='> ($ Id.VSub_QMark '?')}) (C {<G_ERROR_HANDLER>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Forcing use of modified apt configs'>)}) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='> (SQ <'/etc/apt/apt.conf.d/99-dietpi-forceconf'>)} ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 2816 stdin_parts: [ <'Dpkg::options {\n'> <' '> <Id.Right_DoubleQuote '"'> <--force-confdef> <Id.Right_DoubleQuote '"'> <';\n'> <' '> <Id.Right_DoubleQuote '"'> <--force-confold> <Id.Right_DoubleQuote '"'> <';\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND)} ) ] more_env: [] do_fork: T ) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='> ($ Id.VSub_QMark '?')}) (C {<G_ERROR_HANDLER>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <apt-transport-https>)} {(SQ <apt-utils>)} {(SQ <bash-completion>)} {(SQ <bc>)} {(SQ <bzip2>)} {(SQ <ca-certificates>)} {(SQ <console-setup>)} {(SQ <cron>)} {(SQ <curl>)} {(SQ <dbus>)} {(SQ <debconf>)} {(SQ <dosfstools>)} {(SQ <dphys-swapfile>)} {(SQ <ethtool>)} {(SQ <fake-hwclock>)} {(SQ <fbset>)} {(SQ <gnupg>)} {(SQ <hfsplus>)} {(SQ <htop>)} {(SQ <initramfs-tools>)} {(SQ <iputils-ping>)} {(SQ <isc-dhcp-client>)} {(SQ <locales>)} {(SQ <nano>)} {(SQ <net-tools>)} {(SQ <ntfs-3g>)} {(SQ <ntp>)} {(SQ <p7zip-full>)} {(SQ <parted>)} {(SQ <psmisc>)} {(SQ <resolvconf>)} {(SQ <sudo>)} {(SQ <systemd-sysv>)} {(SQ <tzdata>)} {(SQ <unzip>)} {(SQ <usbutils>)} {(SQ <wget>)} {(SQ <whiptail>)} {(SQ <wput>)} {(SQ <zip>)} ] ) } spids: [2832] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_DISTRO)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <dropbear>)}])} spids: [3184] ) ] redirects: [] ) ] spids: [3166 3180] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <dropbear-run>)}])} spids: [3200] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {<debian-archive-keyring>})] spids: [3224 3238] ) ] else_action: [(C {<G_AGI>} {<raspbian-archive-keyring>})] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 20>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_AGI>} {<firmware-realtek>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <hdparm>)}])} spids: [3296] ) ] redirects: [] ) ] spids: [3270 3284] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_ARCH)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_AGI>} {<linux-image-amd64>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 20>} ) redirects: [] ) (C {<G_AGI>} {<firmware-linux-nonfree>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<grep>} {(SQ <vendor_id>)} {<'/proc/cpuinfo'>}) (C {<grep>} {<-qi>} {(SQ <intel>)}) ] negated: F stderr_indices: [] ) (C {<G_AGI>} {<intel-microcode>}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<grep>} {(SQ <vendor_id>)} {<'/proc/cpuinfo'>}) (C {<grep>} {<-qi>} {(SQ <amd>)}) ] negated: F stderr_indices: [] ) (C {<G_AGI>} {<amd64-microcode>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^grub-efi-amd64[[:space:]]'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) (C {<Id.Lit_LBracket '['>} {<-d>} {<'/boot/efi'>} {<Id.Lit_RBracket ']'>}) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {<grub-efi-amd64>})] spids: [3440 3477] ) ] else_action: [(C {<G_AGI>} {<grub-pc>})] redirects: [] ) ] spids: [3332 3346] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<apt-mark>} {<unhold>} {<libraspberrypi-bin>} {<libraspberrypi0>} {<raspberrypi-bootloader>} {<raspberrypi-kernel>} {<raspberrypi-sys-mods>} {<raspi-copies-and-fills>} ) (C {<rm>} {<-R>} {<'/lib/modules/'> <Id.Lit_Star '*'>}) (C {<G_AGI>} {<libraspberrypi-bin>} {<libraspberrypi0>} {<raspberrypi-bootloader>} {<raspberrypi-kernel>} {<raspberrypi-sys-mods>} {<raspi-copies-and-fills>} {<--reinstall>} ) ] spids: [3513 3527] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 12>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {<linux-image-arm64-odroid-c2>})] spids: [3579 3593] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 11>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_AGI>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {(SQ <'^linux-image'>)}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^linux-image'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) (C {<G_AGI>} {<linux-image-armhf-odroid-xu3>}) ] ) ] spids: [3607 3621] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {<linux-image-armhf-odroid-c1>})] spids: [3689 3703] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 43>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {<linux-rock64-package>})] spids: [3717 3731] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 71>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {<device-tree-compiler>})] spids: [3745 3759] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'AUTO_DETECT_KERN_PKG='> name: AUTO_DETECT_KERN_PKG ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {(SQ <'^linux-image'>)}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [3781] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName AUTO_DETECT_KERN_PKG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {($ Id.VSub_DollarName AUTO_DETECT_KERN_PKG)})] spids: [3805 3818] ) ] else_action: [ (C {<G_DIETPI-NOTIFY>} {<2>} { (SQ < 'Unable to find kernel packages for installation. Assuming non-APT/.deb kernel installation.' > ) } ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'AUTO_DETECT_DTB_PKG='> name: AUTO_DETECT_DTB_PKG ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {(SQ <'^linux-dtb-'>)}) (C {<awk>} {(SQ <'{print $1}'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [3850] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName AUTO_DETECT_DTB_PKG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<G_AGI>} {($ Id.VSub_DollarName AUTO_DETECT_DTB_PKG)})] spids: [3874 3887] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'WiFi selection'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_TITLE='> name:WHIP_TITLE) op: assign_op.Equal rhs: {(SQ <'WiFi required?'>)} spids: [3959] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_DESC='> name:WHIP_DESC) op: assign_op.Equal rhs: {(SQ <'Please select an option'>)} spids: [3965] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_DEFAULT_ITEM='> name:WHIP_DEFAULT_ITEM) op: assign_op.Equal rhs: {<1>} spids: [3971] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'WHIP_MENU_ARRAY='> name:WHIP_MENU_ARRAY) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ {(SQ <0>)} {(DQ <'I don\'t require WiFi, do not install.'>)} {(SQ <1>)} {(SQ <'I require WiFi functionality, keep/install related packages.'>)} ] ) } spids: [3975] ) ] redirects: [] ) (C {<Run_Whiptail>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName WHIP_RETURN_VALUE)} right: {<Id.Lit_Digits 1>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Marking WiFi as needed'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <crda>)}])} spids: [4034] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <firmware-atheros>)}])} spids: [4045] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <firmware-brcm80211>)}])} spids: [4056] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <firmware-ralink>)}])} spids: [4067] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <iw>)}])} spids: [4078] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <rfkill>)}])} spids: [4089] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <wireless-tools>)}])} spids: [4100] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'aPACKAGES_REQUIRED_INSTALL+='> name: aPACKAGES_REQUIRED_INSTALL ) op: assign_op.PlusEqual rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{(SQ <wpasupplicant>)}])} spids: [4111] ) ] redirects: [] ) ] spids: [4006 4020] ) ] else_action: [] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Generating list of minimal packages, required for DietPi installation:'>)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INSTALL_PACKAGES='> name:INSTALL_PACKAGES) op: assign_op.Equal rhs: {(SQ )} spids: [4137] ) ] redirects: [] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aPACKAGES_REQUIRED_INSTALL> var_name: aPACKAGES_REQUIRED_INSTALL prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'INSTALL_PACKAGES+='> name: INSTALL_PACKAGES ) op: assign_op.PlusEqual rhs: { (DQ (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name aPACKAGES_REQUIRED_INSTALL> var_name: aPACKAGES_REQUIRED_INSTALL bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName i)}) right: <Id.Right_DollarBrace '}'> ) <' '> ) } spids: [4175] ) ] redirects: [] ) ] ) redirects: [] ) (C {<unset>} {<aPACKAGES_REQUIRED_INSTALL>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Marking required packages as manually installed:'>)}) (C {<G_RUN_CMD>} {<apt-mark>} {<manual>} {($ Id.VSub_DollarName INSTALL_PACKAGES)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Purging APT with autoremoval:'>)}) (C {<G_AGA>}) (C {<echo>} {<-e>} {(SQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Step 5: APT installations:'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Upgrading existing APT installed packages:'>)}) (C {<G_AGDUG>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO='> name:G_DISTRO) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DISTRO_TARGET)} spids: [4299] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'G_DISTRO_NAME='> name:G_DISTRO_NAME) op: assign_op.Equal rhs: {($ Id.VSub_DollarName DISTRO_TARGET_NAME)} spids: [4303] ) ] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Disabling swapfile generation for dphys-swapfile during install'>)} ) (command.Simple words: [{<G_RUN_CMD>} {<echo>} {<-e>} {(DQ <'CONF_SWAPSIZE=0'>)}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/etc/dphys-swapfile'>})] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Installing core DietPi pre-req APT packages'>)}) (C {<G_AGI>} {($ Id.VSub_DollarName INSTALL_PACKAGES)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Returning installation of recommends back to default'>)}) (C {<G_RUN_CMD>} {<rm>} {<'/etc/apt/apt.conf.d/99-dietpi-norecommends'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Purging APT with autoremoval (in case of DISTRO upgrade/downgrade):'>)} ) (C {<G_AGA>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName G_DISTRO)} right: {<Id.Lit_Digits 3>} ) right: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 9>} ) ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<sed>} {<-i>} {(SQ <'s/http:/https:/g'>)} {<'/etc/apt/sources.list'>})] spids: [4390 4412] ) ] else_action: [] redirects: [] ) (C {<echo>} {<-e>} {(SQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<0>} {(SQ <'Step 6: Downloading and installing DietPi sourcecode'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'INTERNET_ADDRESS='> name:INTERNET_ADDRESS) op: assign_op.Equal rhs: { (DQ <'https://github.com/Fourdee/DietPi/archive/'> ($ Id.VSub_DollarName GIT_BRANCH) <.zip> ) } spids: [4476] ) ] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Checking connection to '> ($ Id.VSub_DollarName INTERNET_ADDRESS))} ) (C {<G_CHECK_URL>} {(DQ ($ Id.VSub_DollarName INTERNET_ADDRESS))}) (C {<G_RUN_CMD>} {<wget>} {(DQ ($ Id.VSub_DollarName INTERNET_ADDRESS))} {<-O>} {<package.zip>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Extracting DietPi sourcecode'>)}) (C {<G_RUN_CMD>} {<unzip>} {<-o>} {<package.zip>}) (C {<rm>} {<package.zip>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Removing files not required'>)}) (C {<rm>} {<DietPi-> <Id.Lit_Star '*'> <'/CHANGELOG.txt'>}) (C {<rm>} {<DietPi-> <Id.Lit_Star '*'> <'/PREP_SYSTEM_FOR_DIETPI.sh'>}) (C {<rm>} {<DietPi-> <Id.Lit_Star '*'> <'/TESTING-BRANCH.md'>}) (C {<rm>} {<DietPi-> <Id.Lit_Star '*'> <'/uEnv.txt'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Creating /boot'>)}) (C {<G_RUN_CMD>} {<mkdir>} {<-p>} {<'/boot'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Moving to /boot'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_RUN_CMD>} {<mv>} {<DietPi-> <Id.Lit_Star '*'> <'/boot_c1.ini'>} {<'/boot/boot.ini'>}) ] spids: [4625 4639] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 11>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_RUN_CMD>} {<mv>} {<DietPi-> <Id.Lit_Star '*'> <'/boot_xu4.ini'>} {<'/boot/boot.ini'>}) ] spids: [4655 4669] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 12>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_RUN_CMD>} {<mv>} {<DietPi-> <Id.Lit_Star '*'> <'/boot_c2.ini'>} {<'/boot/boot.ini'>}) ] spids: [4685 4699] ) ] else_action: [] redirects: [] ) (C {<rm>} {<DietPi-> <Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'> <.ini>}) (C {<G_RUN_CMD>} {<cp>} {<-R>} {<DietPi-> <Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>} {<'/boot/'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Cleaning up extracted files'>)}) (C {<G_RUN_CMD>} {<rm>} {<-R>} {<DietPi-> <Id.Lit_Star '*'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Setting execute permissions for /boot/dietpi'>)}) (C {<G_RUN_CMD>} {<chmod>} {<-R>} {<Id.Lit_Other '+'> <x>} {<'/boot/dietpi'>}) (C {<echo>} {<-e>} {(SQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<0>} {(DQ <'Step 7: Prep system for DietPi ENV:'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Deleting list of known users, not required by DietPi'>)}) (command.Simple words: [{<userdel>} {<-f>} {<pi>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<userdel>} {<-f>} {<test>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<userdel>} {<-f>} {<odroid>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<userdel>} {<-f>} {<rock64>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<userdel>} {<-f>} {<linaro>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<userdel>} {<-f>} {<dietpi>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<userdel>} {<-f>} {<debian>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Removing misc files/folders/services, not required by DietPi'>)}) (command.Simple words: [{<rm>} {<-R>} {<'/home'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/media'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/selinux'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/var/www/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/usr/src/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/root/.cache/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/root/.local/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/root/.config/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/usr/share/man'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/usr/share/doc'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/usr/share/doc-base'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/usr/share/calendar'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/var/cache/debconf/'> <Id.Lit_Star '*'> <-old>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/usr/share/fonts/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<-R>} {<'/usr/share/icons/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/init.d/resize2fs'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/update-motd.d/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<systemctl>} {<disable>} {<firstrun>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/init.d/firstrun'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<systemctl>} {<disable>} {<log2ram.service>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<systemctl>} {<stop>} {<log2ram.service>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/usr/local/sbin/log2ram'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/systemd/system/log2ram.service'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<systemctl>} {<daemon-reload>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/cron.hourly/log2ram'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/init.d/cpu_governor'>} {<Meveric>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'> <Id.Lit_Pound '#'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/systemd/system/cpu_governor.service'>} {<Meveric>}] redirects: [ (redir op: <Id.Redir_AndGreat '&>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'> <Id.Lit_Pound '#'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<systemctl>} {<disable>} {<resize2fs>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/systemd/system/resize2fs.service'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/profile.d/check_first_login_reboot.sh'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Creating DietPi core environment'>)}) (C {<G_RUN_CMD>} {<'/boot/dietpi/func/dietpi-set_core_environment'>}) (command.Simple words: [ {<echo>} {<-e>} { (DQ <'Samba client can be installed and setup by DietPi-Config.'> <Id.Lit_BadBackslash '\\'> <'nSimply run: dietpi-config and select the Networking option: NAS/Misc menu'> ) } ] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/mnt/samba/readme.txt'>}) ] more_env: [] do_fork: T ) (command.Simple words: [ {<echo>} {<-e>} { (DQ <'FTP client mount can be installed and setup by DietPi-Config.'> <Id.Lit_BadBackslash '\\'> <'nSimply run: dietpi-config and select the Networking option: NAS/Misc menu'> ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/mnt/ftp_client/readme.txt'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [ {<echo>} {<-e>} { (DQ <'NFS client can be installed and setup by DietPi-Config.'> <Id.Lit_BadBackslash '\\'> <'nSimply run: dietpi-config and select the Networking option: NAS/Misc menu'> ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/mnt/nfs_client/readme.txt'>} ) ] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Deleting all log files /var/log'>)}) (command.Simple words: [{<'/boot/dietpi/dietpi-logclear'>} {<2>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Generating DietPi /etc/fstab'>)}) (C {<G_RUN_CMD>} {<'/boot/dietpi/dietpi-drive_manager'>} {<4>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PARTUUID_CURRENT='> name: PARTUUID_CURRENT ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<blkid>} {<'/dev/mmcblk0p1'>} {<-s>} {<PARTUUID>} {<-o>} {<value>}) right: <Id.Eof_RParen _> ) } spids: [5444] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UUID_CURRENT='> name:UUID_CURRENT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<blkid>} {<'/dev/mmcblk0p1'>} {<-s>} {<UUID>} {<-o>} {<value>}) right: <Id.Eof_RParen _> ) } spids: [5460] ) ] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'s#^UUID='> ($ Id.VSub_DollarName UUID_CURRENT) <'#PARTUUID='> ($ Id.VSub_DollarName PARTUUID_CURRENT) <'#g'> ) } {<'/etc/fstab'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'PARTUUID_CURRENT='> name: PARTUUID_CURRENT ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<blkid>} {<'/dev/mmcblk0p2'>} {<-s>} {<PARTUUID>} {<-o>} {<value>}) right: <Id.Eof_RParen _> ) } spids: [5492] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UUID_CURRENT='> name:UUID_CURRENT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<blkid>} {<'/dev/mmcblk0p2'>} {<-s>} {<UUID>} {<-o>} {<value>}) right: <Id.Eof_RParen _> ) } spids: [5508] ) ] redirects: [] ) (C {<sed>} {<-i>} { (DQ <'s#^UUID='> ($ Id.VSub_DollarName UUID_CURRENT) <'#PARTUUID='> ($ Id.VSub_DollarName PARTUUID_CURRENT) <'#g'> ) } {<'/etc/fstab'>} ) (C {<systemctl>} {<daemon-reload>}) ] spids: [5426 5440] ) ] else_action: [] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Starting DietPi-RAMdisk service'>)}) (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<dietpi-ramdisk.service>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Starting DietPi-RAMlog service'>)}) (C {<G_RUN_CMD>} {<systemctl>} {<start>} {<dietpi-ramlog.service>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Updating DietPi HW_INFO'>)}) (C {<'/DietPi/dietpi/dietpi-obtain_hw_model'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring Network:'>)}) (command.Simple words: [{<rm>} {<-R>} {<'/etc/network/interfaces'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<G_RUN_CMD>} {<cp>} {<'/boot/dietpi/conf/network_interfaces'>} {<'/etc/network/interfaces'>}) (command.Simple words: [{<rm>} {<'/etc/udev/rules.d/70-persistent-net.rules'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/etc/udev/rules.d/70-persistant-net.rules'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 32>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} { (SQ < '/iface wlan0 inet dhcp/apre-up modprobe xradio_wlan\\npre-up iwconfig wlan0 power on' > ) } {<'/etc/network/interfaces'>} ) ] spids: [5666 5680] ) ] else_action: [] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Tweaking DHCP timeout:'>)}) (C {<sed>} {<-i>} {(SQ <'/^#timeout /d'>)} {<'/etc/dhcp/dhclient.conf'>}) (C {<sed>} {<-i>} {(SQ <'/^#retry /d'>)} {<'/etc/dhcp/dhclient.conf'>}) (C {<sed>} {<-i>} {(SQ <'/^timeout /d'>)} {<'/etc/dhcp/dhclient.conf'>}) (C {<sed>} {<-i>} {(SQ <'/^retry /d'>)} {<'/etc/dhcp/dhclient.conf'>}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 5771 stdin_parts: [<'timeout 10;\n'> <'retry 4;\n'>] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/dhcp/dhclient.conf'>} ) ] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring hosts:'>)}) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='> (SQ <'/etc/hosts'>)}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 5808 stdin_parts: [ <'127.0.0.1 localhost\n'> <'127.0.1.1 DietPi\n'> <'::1 localhost ip6-localhost ip6-loopback\n'> <'ff02::1 ip6-allnodes\n'> <'ff02::2 ip6-allrouters\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND)} ) ] more_env: [] do_fork: T ) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='> ($ Id.VSub_QMark '?')}) (C {<G_ERROR_HANDLER>}) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='> (SQ <'/etc/hostname'>)}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 5840 stdin_parts: [<'DietPi\n'>] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND)} ) ] more_env: [] do_fork: T ) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='> ($ Id.VSub_QMark '?')}) (C {<G_ERROR_HANDLER>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring htop:'>)}) (C {<mkdir>} {<-p>} {<'/root/.config/htop'>}) (C {<cp>} {<'/DietPi/dietpi/conf/htoprc'>} {<'/root/.config/htop/htoprc'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring hdparm:'>)}) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_COMMAND='> (SQ <'/etc/hdparm.conf'>)}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 5915 stdin_parts: [ <'\n'> <'#DietPi external USB drive. Power management settings.\n'> <'/dev/sda {\n'> <' #10 mins\n'> <' spindown_time = 120\n'> <'\n'> <' #\n'> <' apm = 254\n'> <'}\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName G_ERROR_HANDLER_COMMAND)} ) ] more_env: [] do_fork: T ) (C {<export>} {<Id.Lit_VarLike 'G_ERROR_HANDLER_EXITCODE='> ($ Id.VSub_QMark '?')}) (C {<G_ERROR_HANDLER>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring fakehwclock:'>)}) (C {<sed>} {<-i>} {(DQ <'/FORCE=/c'> <Id.Lit_BadBackslash '\\'> <'FORCE=force'>)} {<'/etc/default/fake-hwclock'>} ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring serial consoles:'>)}) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<serialconsole>} {<disable>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring ntpd:'>)}) (C {<systemctl>} {<disable>} {<systemd-timesyncd>}) (command.Simple words: [{<rm>} {<'/etc/init.d/ntp'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Great left: {($ Id.VSub_DollarName G_DISTRO)} right: {<Id.Lit_Digits 4>} ) redirects: [] ) (C {<systemctl>} {<mask>} {<ntp>}) ] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring regional settings (TZdata):'>)}) (command.Simple words: [{<rm>} {<'/etc/timezone'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<rm>} {<'/etc/localtime'>}) (C {<ln>} {<-fs>} {<'/usr/share/zoneinfo/Europe/London'>} {<'/etc/localtime'>}) (C {<G_RUN_CMD>} {<dpkg-reconfigure>} {<-f>} {<noninteractive>} {<tzdata>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Configuring regional settings (Keyboard):'>)}) (C {<dpkg-reconfigure>} {<-f>} {<noninteractive>} {<keyboard-configuration>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Applying G_HW_ARCH specific tweaks:'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_ARCH)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<dpkg>} {<--add-architecture>} {<i386>}) (C {<G_AGUP>}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 6169 stdin_parts: [ <'blacklist nouveau\n'> <'blacklist lbm-nouveau\n'> <'options nouveau modeset=0\n'> <'alias nouveau off\n'> <'alias lbm-nouveau off\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/blacklist-nouveau.conf'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {<-e>} {(DQ <'options nouveau modeset=0'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/nouveau-kms.conf'>} ) ] more_env: [] do_fork: T ) (C {<update-initramfs>} {<-u>}) ] spids: [6116 6130] ) ] else_action: [] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(DQ <'Appling G_HW_MODEL specific tweaks:'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 35>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {<-e>} {(DQ <'blacklist bmp085'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/bmp085.conf'>} ) ] more_env: [] do_fork: T ) ] spids: [6212 6226] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 70>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<wget>} {<https> <Id.Lit_Colon ':'> < '//raw.githubusercontent.com/sparky-sbc/sparky-test/master/dragon_fly_check/uImage' > } {<-O>} {<'/boot/uImage'>} ) (C {<wget>} {<https> <Id.Lit_Colon ':'> < '//raw.githubusercontent.com/sparky-sbc/sparky-test/master/dragon_fly_check/3.10.38.bz2' > } {<-O>} {<package.tar>} ) (C {<tar>} {<xvf>} {<package.tar>} {<-C>} {<'/lib/modules/'>}) (C {<rm>} {<package.tar>}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 6322 stdin_parts: [ <'uenvcmd=setenv os_type linux;\n'> < 'bootargs=earlyprintk clk_ignore_unused selinux=0 scandelay console=tty0 loglevel=1 real_rootflag=rw root=/dev/mmcblk0p2 rootwait init=/lib/systemd/systemd aotg.urb_fix=1 aotg.aotg1_speed=0\n' > ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/DietPi/uEnv.txt'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 6346 stdin_parts: [ <'blacklist owl_camera\n'> <'blacklist gsensor_stk8313\n'> <'blacklist ctp_ft5x06\n'> <'blacklist ctp_gsl3680\n'> <'blacklist gsensor_bma222\n'> <'blacklist gsensor_mir3da\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/disable_sparkysbc_touchscreen.conf'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 6364 stdin_parts: [ <'blacklist pvrsrvkm\n'> <'blacklist drm\n'> <'blacklist videobuf2_vmalloc\n'> <'blacklist bc_example\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/modprobe.d/disable_sparkysbc_gpu.conf'>} ) ] more_env: [] do_fork: T ) (C {<sed>} {<-i>} { (DQ <'/^CONFIG_CPU_GOVERNOR=/c'> <Id.Lit_BadBackslash '\\'> <'CONFIG_CPU_GOVERNOR=performance'> ) } {<'/DietPi/dietpi.txt'>} ) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) ] spids: [6248 6262] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 6438 stdin_parts: [ <'ACTION=='> <Id.Right_DoubleQuote '"'> <add> <Id.Right_DoubleQuote '"'> <', SUBSYSTEM=='> <Id.Right_DoubleQuote '"'> <leds> <Id.Right_DoubleQuote '"'> <', ENV{DEVPATH}=='> <Id.Right_DoubleQuote '"'> <'*/input*::scrolllock'> <Id.Right_DoubleQuote '"'> <', ATTR{trigger}='> <Id.Right_DoubleQuote '"'> <kbd-scrollock> <Id.Right_DoubleQuote '"'> <'\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/udev/rules.d/50-leds.rules'>} ) ] more_env: [] do_fork: T ) ] spids: [6392 6406] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 40>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 6481 stdin_parts: [ <'infocmp > terminfo.txt\n'> <'sed -i -e \'s/?0c/?112c/g\' -e \'s/?8c/?48;0;64c/g\' terminfo.txt\n'> <'tic terminfo.txt\n'> <'tput cnorm\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName HOME)) <'/.bashrc'>} ) ] more_env: [] do_fork: T ) ] spids: [6445 6459] ) (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 11>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 6525 stdin_parts: [ <'Package: *\n'> <'Pin: release a=jessie-backports\n'> <'Pin: origin '> <Id.Right_DoubleQuote '"'> <fuzon.co.uk> <Id.Right_DoubleQuote '"'> <'\n'> <'Pin-Priority: 99\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/apt/preferences.d/backports'>} ) ] more_env: [] do_fork: T ) ] spids: [6488 6502] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<sed>} {<-i>} {(SQ <'/verbosity=/c\\verbosity=7'>)} {<'/boot/armbianEnv.txt'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<echo>} {<-e>} {(SQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<0>} {(DQ <'Step 8: Finalise system for first run of DietPi:'>)}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <----------------------------------------------------------------------------------->)} ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Configuring Dropbear:'>)}) (C {<sed>} {<-i>} {(SQ <'/NO_START=1/c\\NO_START=0'>)} {<'/etc/default/dropbear'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Configuring Services'>)}) (C {<'/DietPi/dietpi/dietpi-services'>} {<stop>}) (C {<'/DietPi/dietpi/dietpi-services'>} {<dietpi_controlled>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Running general cleanup of misc files'>)}) (command.Simple words: [{<rm>} {<-R>} {<'/tmp/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/.bash_history'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {(word_part.TildeSub token:<Id.Lit_TildeLike '~'>) <'/.nano_history'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Disabling swapfile'>)}) (C {<'/DietPi/dietpi/func/dietpi-set_dphys-swapfile'>} {<0>} {<'/var/swap'>}) (command.Simple words: [{<rm>} {<'/var/swap'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 71>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<sed>} {<-i>} {(SQ <'/AUTO_SETUP_SWAPFILE_SIZE=/c\\AUTO_SETUP_SWAPFILE_SIZE=0'>)} {<'/DietPi/dietpi.txt'>} ) ] spids: [6735 6749] ) ] else_action: [] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Resetting boot.ini, config.txt, cmdline.txt etc'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 40>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<sed>} {<-i>} {(SQ <'/^ethaddr/ d'>)} {<'/boot/uEnv.txt'>})] spids: [6783 6797] ) ] else_action: [] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {<'/boot/cmdline.txt'>} {<Id.Lit_RBracket ']'>}) (C {<sed>} {<-i>} {(DQ <'s/ rootdelay=10//g'>)} {<'/boot/cmdline.txt'>}) ] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Generating default wpa_supplicant.conf'>)}) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wificreds>} {<set>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Disabling generic WiFi/BT by default'>)}) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<bluetooth>} {<disable>}) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<disable>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Enabling onboard WiFi modules by default'>)}) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<wifimodules>} {<onboard_enable>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Disabling soundcards by default'>)}) (C {<'/DietPi/dietpi/func/dietpi-set_hardware'>} {<soundcard>} {<none>}) (C {<G_AGP>} {<alsa-utils>}) (C {<G_AGA>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Setting default CPU gov'>)}) (C {<'/DietPi/dietpi/dietpi-cpu_set'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Clearing log files'>)}) (C {<'/DietPi/dietpi/dietpi-logclear'>} {<2>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Deleting DietPi-RAMlog storage'>)}) (command.Simple words: [{<rm>} {<-R>} {<'/var/lib/dietpi/dietpi-ramlog/storage/'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Deleting NTP drift file'>)}) (command.Simple words: [{<rm>} {<'/var/lib/ntp/ntp.drift'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Resetting DietPi generated globals/files'>)}) (C {<rm>} {<'/DietPi/dietpi/.'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_Star '*'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Setting DietPi-Autostart to console'>)}) (command.Simple words: [{<echo>} {<0>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/DietPi/dietpi/.dietpi-autostart_index'>} ) ] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Creating our update file (used on 1st run to check for DietPi updates)'>)} ) (command.Simple words: [{<echo>} {<-1>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/DietPi/dietpi/.update_stage'>} ) ] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Set Init .install_stage to -1 (first boot)'>)}) (command.Simple words: [{<echo>} {<-1>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/DietPi/dietpi/.install_stage'>} ) ] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Remove server_version / patch_file (downloads fresh from dietpi-update)'>)} ) (command.Simple words: [{<rm>} {<'/DietPi/dietpi/patch_file'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (command.Simple words: [{<rm>} {<'/DietPi/dietpi/server_version'> <Id.Lit_Star '*'>}] redirects: [(redir op:<Id.Redir_AndGreat '&>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] more_env: [] do_fork: T ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Clearing APT cache'>)}) (C {<G_RUN_CMD>} {<apt-get>} {<clean>}) (C {<rm>} {<-R>} {<'/var/lib/apt/lists/'> <Id.Lit_Star '*'>} {<-vf>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_Less left: {($ Id.VSub_DollarName G_HW_MODEL)} right: {<Id.Lit_Digits 10>} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<rm>} {<'/etc/.dietpi_hw_model_identifier'>})] spids: [7173 7187] ) ] else_action: [] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Generating dietpi-fs_partition_resize for first boot'>)}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 7238 stdin_parts: [ <'[Unit]\n'> <'Description=dietpi-fs_partition_resize\n'> <'Before=dietpi-ramdisk.service\n'> <'\n'> <'[Service]\n'> <'Type=oneshot\n'> <'RemainAfterExit=no\n'> < 'ExecStart=/bin/bash -c \'/var/lib/dietpi/fs_partition_resize.sh | tee /var/tmp/dietpi/logs/fs_partition_resize.log\'\n' > <'StandardOutput=tty\n'> <'\n'> <'[Install]\n'> <'WantedBy=local-fs.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/dietpi-fs_partition_resize.service'>} ) ] more_env: [] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) (C {<G_RUN_CMD>} {<systemctl>} {<enable>} {<dietpi-fs_partition_resize.service>}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 7339 stdin_parts: [ <'#!/bin/bash\n'> <'\n'> <'systemctl disable dietpi-fs_partition_resize.service\n'> <'systemctl enable dietpi-fs_expand.service\n'> <'systemctl daemon-reload\n'> <'\n'> <'sync\n'> <'\n'> <'TARGET_PARTITION=0\n'> <'TARGET_DEV='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(findmnt / -o source -n)\n'> <'\n'> <'# - MMCBLK[0-9]p[0-9] scrape\n'> <'if [[ '> <Id.Right_DoubleQuote '"'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <TARGET_DEV> <Id.Right_DoubleQuote '"'> <' = *'> <Id.Right_DoubleQuote '"'> <mmcblk> <Id.Right_DoubleQuote '"'> <'* ]]; then\n'> <'\n'> <' TARGET_DEV='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(findmnt / -o source -n | sed \'s/p[0-9]'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'//\')\n'> <'\tTARGET_PARTITION='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(findmnt / -o source -n | sed \'s/.*p//\')\n'> <'\n'> <'# - Everything else scrape (eg: /dev/sdX[0-9])\n'> <'else\n'> <'\n'> <' TARGET_DEV='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(findmnt / -o source -n | sed \'s/[0-9]'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'//\')\n'> <'\tTARGET_PARTITION='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(findmnt / -o source -n | sed \'s|/dev/sd.||\')\n'> <'\n'> <'fi\n'> <'\n'> <'cat << _EOF_1 | fdisk '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'TARGET_DEV\n'> <'p\n'> <'d\n'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'TARGET_PARTITION\n'> <'n\n'> <'p\n'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'TARGET_PARTITION\n'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(parted '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') < 'TARGET_DEV -ms unit s p | grep \':ext4::;\' | sed \'s/:/ /g\' | sed \'s/s//g\' | awk \'{ print ' > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'2 }\')\n'> <'\n'> <'p\n'> <'w\n'> <'\n'> <'_EOF_1\n'> <'\n'> <'reboot\n'> <'\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/var/lib/dietpi/fs_partition_resize.sh'>} ) ] more_env: [] do_fork: T ) (C {<G_RUN_CMD>} {<chmod>} {<Id.Lit_Other '+'> <x>} {<'/var/lib/dietpi/fs_partition_resize.sh'>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Generating dietpi-fs_partition_expand for subsequent boot'>)}) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 7391 stdin_parts: [ <'[Unit]\n'> <'Description=dietpi-fs_expand\n'> <'Before=dietpi-ramdisk.service\n'> <'\n'> <'[Service]\n'> <'Type=oneshot\n'> <'RemainAfterExit=no\n'> <'ExecStart=/bin/bash -c '> <Id.Right_DoubleQuote '"'> <'resize2fs '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') < '(findmnt / -o source -n) &> /var/tmp/dietpi/logs/fs_expand.log; systemctl disable dietpi-fs_expand.service; systemctl daemon-reload' > <Id.Right_DoubleQuote '"'> <'\n'> <'StandardOutput=tty\n'> <'\n'> <'[Install]\n'> <'WantedBy=local-fs.target\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/systemd/system/dietpi-fs_expand.service'>} ) ] more_env: [] do_fork: T ) (C {<systemctl>} {<daemon-reload>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Storing DietPi version ID'>)}) (C {<G_RUN_CMD>} {<wget>} {<https> <Id.Lit_Colon ':'> <'//raw.githubusercontent.com/Fourdee/DietPi/'> ($ Id.VSub_DollarName GIT_BRANCH) <'/dietpi/.version'> } {<-O>} {<'/DietPi/dietpi/.version'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CORE_VERSION='> name:CORE_VERSION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<1p>} {<'/DietPi/dietpi/.version'>}) right: <Id.Eof_RParen _> ) } spids: [7446] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SUB_VERSION='> name:SUB_VERSION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<sed>} {<-n>} {<2p>} {<'/DietPi/dietpi/.version'>}) right: <Id.Eof_RParen _> ) } spids: [7458] ) ] redirects: [] ) (command.DParen child: (arith_expr.UnaryAssign op_id: Id.Node_PostDMinus child: ($ Id.Lit_ArithVarLike SUB_VERSION) ) redirects: [] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<_EOF_>} here_end_span_id: 7492 stdin_parts: [ ($ Id.VSub_DollarName CORE_VERSION) <'\n'> ($ Id.VSub_DollarName SUB_VERSION) <'\n'> ] ) ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/DietPi/dietpi/.version'>} ) ] more_env: [] do_fork: T ) (C {<G_RUN_CMD>} {<cp>} {<'/DietPi/dietpi/.version'>} {<'/var/lib/dietpi/.dietpi_image_version'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.DParen child: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<dpkg>} {<--get-selections>}) (C {<grep>} {<-ci>} {<-m1>} {(SQ <'^grub-efi-amd64[[:space:]]'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } redirects: [] ) (C {<Id.Lit_LBracket '['>} {<-d>} {<'/boot/efi'>} {<Id.Lit_RBracket ']'>}) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Recreating GRUB-EFI'>)}) (C {<G_RUN_CMD>} {<grub-install>} {<--target> <Id.Lit_Equals '='> <x86_64-efi>} {<--efi-directory> <Id.Lit_Equals '='> <'/boot/efi'>} {<--bootloader-id> <Id.Lit_Equals '='> <arch_grub>} {<--recheck>} ) ] spids: [7509 7546] ) ] else_action: [] redirects: [] ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Sync changes to disk. Please wait, this may take some time...'>)}) (C {<G_RUN_CMD>} {<systemctl>} {<stop>} {<dietpi-ramlog>}) (C {<G_RUN_CMD>} {<systemctl>} {<stop>} {<dietpi-ramdisk>}) (C {<sync>}) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Please check and delete all non-required folders in /root/.xxxxxx'>)} ) (C {<G_DIETPI-NOTIFY>} {<2>} {(SQ <'Please delete outdated modules'>)}) (C {<ls>} {<-lha>} {<'/lib/modules'>}) (C {<G_DIETPI-NOTIFY>} {<0>} { (DQ < 'Completed, disk can now be saved to .img for later use, or, reboot system to start first run of DietPi:' > ) } ) (C {<rm>} {<dietpi-globals>}) (C {<rm>} {<PREP_SYSTEM_FOR_DIETPI.sh>}) ] redirects: [] right: <Id.Lit_RBrace '}'> )