(command.BraceGroup children: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:INPUT) op:assign_op.Equal rhs:{<0>} spids:[71])] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_Number '$1')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INPUT) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [99] ) ] ) ] spids: [75 95] ) ] ) (C {<.>} {</DietPi/dietpi/func/dietpi-globals>}) (C {<G_CHECK_ROOT_USER>}) (C {<export>} {<Id.Lit_VarLike 'G_PROGRAM_NAME='> (SQ <DietPi-CPU_info>)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$G_HW_MODEL')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 20>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {<-e>} { (DQ <Id.Lit_Other '\\'> <'nNotice: CPU information is not available for VM.'> <Id.Lit_Other '\\'> <n> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] spids: [137 151] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_GOV_CURRENT) op: assign_op.Equal rhs: {(SQ <Unknown>)} spids: [179] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aCPU_CURRENT_FREQ) op: assign_op.Equal rhs: {<0>} spids: [186] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aCPU_MIN_FREQ) op: assign_op.Equal rhs: {<0>} spids: [190] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aCPU_MAX_FREQ) op: assign_op.Equal rhs: {<0>} spids: [194] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:aCPU_SCALINGAVAILABLE_FREQ) op: assign_op.Equal rhs: {<0>} spids: [198] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_SCALINGSUPPORTED) op: assign_op.Equal rhs: {<1>} spids: [202] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FP_CPU_SCALINGAVAILABLE_FREQ) op: assign_op.Equal rhs: {(SQ </tmp/dietpi-available_cpu_freqs>)} spids: [206] ) ] ) (command.ShFunction name: Obtain_Cpu_Freq body: (command.BraceGroup children: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>) right: (arith_expr.ArithWord w: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<nproc>} {<--all>})]) ) } ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i)) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {</sys/devices/system/cpu/cpu> ($ Id.VSub_DollarName '$i') </cpufreq/scaling_cur_freq> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: aCPU_CURRENT_FREQ index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<cat>} {</sys/devices/system/cpu/cpu> ($ Id.VSub_DollarName '$i') </cpufreq/scaling_cur_freq> } ) ] ) ) } spids: [263] ) ] ) ] spids: [246 259] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {</sys/devices/system/cpu/cpu> ($ Id.VSub_DollarName '$i') </cpufreq/scaling_min_freq> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: aCPU_MIN_FREQ index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<cat>} {</sys/devices/system/cpu/cpu> ($ Id.VSub_DollarName '$i') </cpufreq/scaling_min_freq> } ) ] ) ) } spids: [299] ) ] ) ] spids: [282 295] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {</sys/devices/system/cpu/cpu> ($ Id.VSub_DollarName '$i') </cpufreq/scaling_max_freq> } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: aCPU_MAX_FREQ index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<cat>} {</sys/devices/system/cpu/cpu> ($ Id.VSub_DollarName '$i') </cpufreq/scaling_max_freq> } ) ] ) ) } spids: [335] ) ] ) ] spids: [318 331] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {</sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>) right: (arith_expr.ArithWord w: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [(C {<nproc>} {<--all>})] ) ) } ) ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:i) ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: aCPU_SCALINGAVAILABLE_FREQ index: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<cat>} {</sys/devices/system/cpu/cpu> ($ Id.VSub_DollarName '$i') </cpufreq/scaling_available_frequencies> } ) (C {<tr>} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {<sed>} {<-e>} {(SQ <'s/[^0-9]//g'>)}) (C {<sed>} {(SQ <'/^$/d'>)}) ] negated: F ) ] ) ) } spids: [408] ) ] ) ] ) ) ] spids: [366 377] ) (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {</sys/devices/system/cpu/cpufreq/mp-cpufreq/cpu_freq_table>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: aCPU_SCALINGAVAILABLE_FREQ index: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<cat>} { < /sys/devices/system/cpu/cpufreq/mp-cpufreq/cpu_freq_table > } ) (C {<tr>} {(SQ <' '>)} {(SQ <'\\n'>)}) (C {<sed>} {<-e>} {(SQ <'s/[^0-9]//g'>)}) (C {<sed>} {(SQ <'/^$/d'>)}) ] negated: F ) ] ) ) } spids: [476] ) ] ) ] spids: [461 472] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_SCALINGSUPPORTED) op: assign_op.Equal rhs: {<0>} spids: [523] ) ] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_CURRENT) op: assign_op.Equal rhs: {(SQ <Unknown>)} spids: [536] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: {(SQ <Unknown>)} spids: [542] ) ] ) (command.ShFunction name: Obtain_Cpu_Temp body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_CURRENT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<G_OBTAIN_CPU_TEMP>})]) ) } spids: [557] ) ] ) (C {<local>} {<Id.Lit_VarLike 'cpu_temp_current_f='> (SQ <Unknown>)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_EqualTilde left: {($ Id.VSub_DollarName '$CPU_TEMP_CURRENT')} right: {<Id.Lit_Other '^'> <-> <Id.Lit_Other '?'> <Id.Lit_Other '['> <0-9> <Id.Lit_Other ']'> <Id.Lit_Other '+'> <Id.Lit_Other '$'> } ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cpu_temp_current_f) op: assign_op.Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.Binary op_id: Id.Arith_Star left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$CPU_TEMP_CURRENT')} ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 9>}) ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 5>}) ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 32>}) ) ) } spids: [596] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$CPU_TEMP_CURRENT')} ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 70>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: { (DQ <Id.Lit_Other '\\'> <'e[91mWarning: '> ($ Id.VSub_DollarName '$CPU_TEMP_CURRENT') <"'c : "> ($ Id.VSub_DollarName '$cpu_temp_current_f') <"'f | Reducing the life of your device."> <Id.Lit_Other '\\'> <'e[0m'> ) } spids: [639] ) ] ) ] spids: [621 635] ) (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$CPU_TEMP_CURRENT')} ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 60>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: { (DQ <Id.Lit_Other '\\'> <'e[38;5;202m'> ($ Id.VSub_DollarName '$CPU_TEMP_CURRENT') <"'c : "> ($ Id.VSub_DollarName '$cpu_temp_current_f') <"'f"> <Id.Lit_Other '\\'> <'e[90m | Running hot, not recommended.'> <Id.Lit_Other '\\'> <'e[0m'> ) } spids: [671] ) ] ) ] spids: [653 667] ) (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$CPU_TEMP_CURRENT')} ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 50>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: { (DQ <Id.Lit_Other '\\'> <'e[93m'> ($ Id.VSub_DollarName '$CPU_TEMP_CURRENT') <"'c : "> ($ Id.VSub_DollarName '$cpu_temp_current_f') <"'f"> <Id.Lit_Other '\\'> <'e[0m '> <Id.Lit_Other '\\'> <'e[90m | Running warm, but safe.'> <Id.Lit_Other '\\'> <'e[0m'> ) } spids: [705] ) ] ) ] spids: [687 701] ) (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$CPU_TEMP_CURRENT')} ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 40>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: { (DQ <Id.Lit_Other '\\'> <'e[92m'> ($ Id.VSub_DollarName '$CPU_TEMP_CURRENT') <"'c : "> ($ Id.VSub_DollarName '$cpu_temp_current_f') <"'f"> <Id.Lit_Other '\\'> <'e[0m'> <Id.Lit_Other '\\'> <'e[90m | Optimal temperature.'> <Id.Lit_Other '\\'> <'e[0m'> ) } spids: [741] ) ] ) ] spids: [723 737] ) (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$CPU_TEMP_CURRENT')} ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 30>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: { (DQ <Id.Lit_Other '\\'> <'e[96m'> ($ Id.VSub_DollarName '$CPU_TEMP_CURRENT') <"'c : "> ($ Id.VSub_DollarName '$cpu_temp_current_f') <"'f"> <Id.Lit_Other '\\'> <'e[0m'> <Id.Lit_Other '\\'> <'e[90m | Cool runnings.'> <Id.Lit_Other '\\'> <'e[0m'> ) } spids: [777] ) ] ) ] spids: [759 773] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: { (DQ <Id.Lit_Other '\\'> <'e[96m'> ($ Id.VSub_DollarName '$CPU_TEMP_CURRENT') <"'c : "> ($ Id.VSub_DollarName '$cpu_temp_current_f') <"'f "> <Id.Lit_Other '\\'> <'e[0m '> <Id.Lit_Other '\\'> <'e[90m| Who put me in the freezer!'> <Id.Lit_Other '\\'> <'e[0m'> ) } spids: [799] ) ] ) ] ) ] spids: [572 592] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_TEMP_PRINT) op: assign_op.Equal rhs: { (DQ <Id.Lit_Other '\\'> <'e[91mKERNELERR: '> ($ Id.VSub_DollarName '$CPU_TEMP_CURRENT') <"'c"> <Id.Lit_Other '\\'> <'e[0m'> ) } spids: [825] ) ] ) ] ) ] ) ) (command.ShFunction name: Obtain_Cpu_Gov body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {</sys/devices/system/cpu/cpu0/cpufreq/scaling_governor>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CPU_GOV_CURRENT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {<cat>} {</sys/devices/system/cpu/cpu0/cpufreq/scaling_governor>} ) ] ) ) } spids: [867] ) ] ) ] spids: [852 863] ) ] ) ] ) ) (command.ShFunction name: Print_Stats body: (command.BraceGroup children: [ (C {<echo>} {<-e>} {(DQ )}) (C {<echo>} {<-e>} { (DQ <' '> <Id.Lit_Other '\\'> < 'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' > <Id.Lit_Other '\\'> <'e[0m'> <Id.Lit_Other '\\'> <'n '> <Id.Lit_Other '\\'> <'e[1mDietPi CPU Info'> <Id.Lit_Other '\\'> <'e[0m'> <Id.Lit_Other '\\'> <n> <Id.Lit_Other '\\'> <'e[90m Use dietpi-config to change CPU / performance options'> <Id.Lit_Other '\\'> <'e[0m'> <Id.Lit_Other '\\'> <'n '> <Id.Lit_Other '\\'> < 'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' > <Id.Lit_Other '\\'> <'e[0m'> ) } ) (C {<echo>} {<-e>} { (DQ <' Architecture '> <Id.Lit_Other '\\'> <'e[90m|'> <Id.Lit_Other '\\'> <'e[0m '> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children:[(C {<uname>} {<-m>})]) ) ) } ) (C {<echo>} {<-e>} { (DQ <' Temp '> <Id.Lit_Other '\\'> <'e[90m|'> <Id.Lit_Other '\\'> <'e[0m '> ($ Id.VSub_DollarName '$CPU_TEMP_PRINT') ) } ) (C {<echo>} {<-e>} { (DQ <' Governor '> <Id.Lit_Other '\\'> <'e[90m|'> <Id.Lit_Other '\\'> <'e[0m '> ($ Id.VSub_DollarName '$CPU_GOV_CURRENT') ) } ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$CPU_GOV_CURRENT'))} {<Id.Lit_Equals '='>} {(DQ <ondemand>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$CPU_GOV_CURRENT'))} {<Id.Lit_Equals '='>} {(DQ <conservative>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<echo>} {<-e>} { (DQ <' Throttle up '> <Id.Lit_Other '\\'> <'e[90m|'> <Id.Lit_Other '\\'> <'e[0m '> (command_sub left_token: <Id.Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {<cat>} {</DietPi/dietpi.txt>}) (C {<grep>} {<-m1>} {(SQ <'^CONFIG_CPU_USAGE_THROTTLE_UP='>)}) (C {<sed>} {(SQ <'s/.*=//'>)}) ] negated: F ) ] ) ) <'% CPU usage'> ) } ) ] spids: [992 1026] ) ] ) (C {<echo>} {<-e>} {(DQ )}) (C {<echo>} {<-e>} { (DQ <' '> <Id.Lit_Other '\\'> <'e[90m Current Freq Min Freq Max Freq'> <Id.Lit_Other '\\'> <'e[0m'> ) } ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>) right: (arith_expr.ArithWord w: { (braced_var_sub token: <Id.VSub_Name aCPU_CURRENT_FREQ> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:(sh_lhs_expr.Name name:i)) body: (command.DoGroup children: [ (C {<echo>} {<-e>} { (DQ <' '> <Id.Lit_Other '\\'> <'e[90mCPU'> ($ Id.VSub_DollarName '$i') <Id.Lit_Other '\\'> <'e[0m '> <Id.Lit_Other '\\'> <'e[90m|'> <Id.Lit_Other '\\'> <'e[0m '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.ArithWord w: { (braced_var_sub token: <Id.VSub_Name aCPU_CURRENT_FREQ> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) } ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1000>}) ) ) <' MHz '> <Id.Lit_Other '\\'> <'e[90m'> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.ArithWord w: { (braced_var_sub token: <Id.VSub_Name aCPU_MIN_FREQ> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) } ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1000>}) ) ) <' MHz '> (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Slash left: (arith_expr.ArithWord w: { (braced_var_sub token: <Id.VSub_Name aCPU_MAX_FREQ> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$i')} ) ) ) } ) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 1000>}) ) ) <' MHz'> <Id.Lit_Other '\\'> <'e[0m'> ) } ) ] ) ) (C {<echo>} {<-e>} {(DQ )}) (C {<G_DIETPI-NOTIFY>} {<2>} { (SQ < 'CPU current frequency, may be affected by this script, due to the processing required to run it.\\n' > ) } ) ] ) ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$INPUT')}) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 2>}) ) ) terminator: <Id.Op_Semi _> ) ] action: [ (C {<Obtain_Cpu_Freq>}) (command.Simple words: [{<rm>} {(DQ ($ Id.VSub_DollarName '$FP_CPU_SCALINGAVAILABLE_FREQ'))}] redirects: [(redir.Redir op:<Id.Redir_AndGreat '&>'> fd:-1 arg_word:{</dev/null>})] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DParen child: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$CPU_SCALINGSUPPORTED')} ) ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: (sh_lhs_expr.Name name:i) right: (arith_expr.ArithWord w:{<Id.Lit_Digits 0>}) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: (arith_expr.VarRef token:<Id.Lit_ArithVarLike i>) right: (arith_expr.ArithWord w: { (braced_var_sub token: <Id.VSub_Name aCPU_SCALINGAVAILABLE_FREQ> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } ) ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: (sh_lhs_expr.Name name:i) ) body: (command.DoGroup children: [ (command.Simple words: [ {<echo>} {<-e>} { (DQ (braced_var_sub token: <Id.VSub_Name aCPU_SCALINGAVAILABLE_FREQ> bracket_op: (bracket_op.ArrayIndex expr: (arith_expr.ArithWord w:{($ Id.VSub_DollarName '$i')}) ) ) ) } ] redirects: [ (redir.Redir op: <Id.Redir_DGreat '>>'> fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$FP_CPU_SCALINGAVAILABLE_FREQ'))} ) ] ) ] ) ) (C {<sort>} {<-u>} {<-n>} {(DQ ($ Id.VSub_DollarName '$FP_CPU_SCALINGAVAILABLE_FREQ'))} {<-o>} {(DQ ($ Id.VSub_DollarName '$FP_CPU_SCALINGAVAILABLE_FREQ'))} ) ] spids: [1287 1297] ) ] ) ] spids: [1249 1263] ) ] else_action: [ (C {<Obtain_Cpu_Freq>}) (C {<Obtain_Cpu_Temp>}) (C {<Obtain_Cpu_Gov>}) (C {<Print_Stats>}) ] ) (C {<unset>} {<aCPU_CURRENT_FREQ>}) (C {<unset>} {<aCPU_MIN_FREQ>}) (C {<unset>} {<aCPU_MAX_FREQ>}) (C {<unset>} {<aCPU_SCALINGAVAILABLE_FREQ>}) (C {<unset>} {<afp_temperature>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] )