(command.CommandList children: [ (command.ShFunction name: k_config_command body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))}) (C {<shift>}) (C {<CFGET_BIN>} {<--plugin>} {(DQ (${ Id.VSub_Name KOALEPHANT_LIB_PATH) <'/cfget-plugins/'>)} {<--format>} {<nestedini>} {<--cfg>} {(DQ (${ Id.VSub_Name file))} {<--quiet>} {(DQ ($ Id.VSub_At '$@'))} ) ] ) ) (command.ShFunction name: k_config_sections body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'root='> (DQ )}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty)) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:root) op: assign_op.Equal rhs: {(DQ <'--root '> (${ Id.VSub_Number 2))} spids: [165] ) ] ) ] spids: [146 162] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<k_config_command>} {(DQ (${ Id.VSub_Name file))} {<--dump>} {<sections>} {(${ Id.VSub_Name root)} ) (C {<true>}) ] ) ] ) ) (command.ShFunction name: k_config_keys body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'root='> (DQ )}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (braced_var_sub token: <Id.VSub_Number 2> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty)) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:root) op: assign_op.Equal rhs: {(DQ <'--root '> (${ Id.VSub_Number 2))} spids: [266] ) ] ) ] spids: [247 263] ) ] ) (C {<k_config_command>} {(DQ (${ Id.VSub_Name file))} {<--dump>} {<keys>} {(${ Id.VSub_Name root)} ) ] ) ) (command.ShFunction name: k_config_read body: (BraceGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [(C {<k_config_read_error>} {(DQ ($ Id.VSub_At '$@'))}) (C {<true>})] ) ] ) ) (command.ShFunction name: k_config_read_error body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))}) (C {<local>} {<Id.Lit_VarLike 'root='> (DQ )}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty)) ) ) } {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:root) op: assign_op.Equal rhs: {(DQ <'--root '> (${ Id.VSub_Number 3))} spids: [433] ) ] ) ] spids: [414 430] ) ] ) (C {<k_config_command>} {(DQ (${ Id.VSub_Name file))} {(${ Id.VSub_Name root)} {(DQ (${ Id.VSub_Name key))} ) ] ) ) (command.ShFunction name: k_config_read_string body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))}) (C {<local>} {<Id.Lit_VarLike 'default='> (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty)) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'root='> (DQ (braced_var_sub token: <Id.VSub_Number 4> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty)) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'value='> (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_config_read>} {(DQ ($ Id.VSub_DollarName '$file'))} {(DQ ($ Id.VSub_DollarName '$key'))} {(DQ (${ Id.VSub_Name root))} ) ) ) } ) (C {<printf>} {(DQ <'%s'>)} { (DQ (braced_var_sub token: <Id.VSub_Name value> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {($ Id.VSub_DollarName '$default')} ) ) ) } ) ] ) ) (command.ShFunction name: k_config_read_bool body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))}) (C {<local>} {<Id.Lit_VarLike 'default='> (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty)) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'root='> (DQ (braced_var_sub token: <Id.VSub_Number 4> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty)) ) ) } ) (C {<k_bool_parse>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_config_read>} {(DQ (${ Id.VSub_Name file))} {(DQ (${ Id.VSub_Name key))} {(DQ (${ Id.VSub_Name root))} ) ) ) } {(DQ (${ Id.VSub_Name default))} ) ] ) ) (command.ShFunction name: k_config_test_bool body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))}) (C {<local>} {<Id.Lit_VarLike 'default='> (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty)) ) ) } ) (C {<local>} {<Id.Lit_VarLike 'root='> (DQ (braced_var_sub token: <Id.VSub_Number 4> suffix_op: (suffix_op.Unary tok:<Id.VTest_ColonHyphen ':-'> arg_word:(word.Empty)) ) ) } ) (C {<k_bool_test>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_config_read_string>} {(DQ (${ Id.VSub_Name file))} {(DQ (${ Id.VSub_Name key))} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_bool_parse>} {(DQ (${ Id.VSub_Name default))}) ) ) } {(DQ (${ Id.VSub_Name root))} ) ) ) } ) ] ) ) (command.ShFunction name: k_config_read_keyword body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'file='> (DQ ($ Id.VSub_Number '$1'))}) (C {<local>} {<Id.Lit_VarLike 'key='> (DQ ($ Id.VSub_Number '$2'))}) (C {<local>} {<Id.Lit_VarLike 'default='> (DQ ($ Id.VSub_Number '$3'))}) (C {<local>} {<Id.Lit_VarLike 'root='> (DQ ($ Id.VSub_Number '$4'))}) (C {<shift>} {<4>}) (C {<k_string_keyword>} { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<k_config_read_string>} {(DQ (${ Id.VSub_Name file))} {(DQ (${ Id.VSub_Name key))} {(DQ (${ Id.VSub_Name default))} {(DQ (${ Id.VSub_Name root))} ) ) ) } {(DQ ($ Id.VSub_At '$@'))} {(DQ ($ Id.VSub_DollarName '$default'))} ) ] ) ) ] )