(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KOALEPHANT_ENVIRONMENT_PREFIX) op: Equal rhs: {(DQ )} spids: [19] ) ] spids: [19] ) (FuncDef name: k_env_safename body: (BraceGroup children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name KOALEPHANT_ENVIRONMENT_PREFIX) (${ VSub_Number 1))}) (C {(tr)} {(-cd)} {(SQ <'[:alnum:]_'>)}) ] negated: F ) ] spids: [49] ) spids: [45 48] ) (FuncDef name: k_env_set body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:name) op:Equal spids:[100]) (assign_pair lhs:(LhsName name:value) op:Equal spids:[102]) (assign_pair lhs:(LhsName name:msg) op:Equal spids:[104]) (assign_pair lhs:(LhsName name:tmpN) op:Equal spids:[106]) (assign_pair lhs:(LhsName name:existing) op:Equal spids:[108]) (assign_pair lhs:(LhsName name:nsName) op:Equal spids:[110]) ] spids: [98] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-lt)} {(2)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [ {(echo)} {(DQ ("Not enough arguments passed to k_env_set: '") ($ VSub_At '$@') ("'"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[138])] ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(1)}) ] spids: [16777215 127] ) ] spids: [16777215 147] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(k_env_safename)} {(DQ (${ VSub_Number 1))})] ) left_token: <Left_CommandSub '$('> spids: [152 160] ) } spids: [151] ) ] spids: [151] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: {(DQ (${ VSub_Number 2))} spids: [163] ) ] spids: [163] ) (C {(k_debug)} {(2)} { (DQ ("Setting '") (${ VSub_Name name) ("' environment variable to '") (${ VSub_Name value) ("'") ) } ) (C {(export)} {(DQ (${ VSub_Name name) ('=') (${ VSub_Name value))}) ] spids: [95] ) spids: [91 94] ) (FuncDef name: k_env_unset body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[226])] spids: [224] ) (ForEach iter_name: name iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (DoGroup children: [ (C {(k_debug)} {(2)} {(DQ ("Unsetting '") (${ VSub_Name name) ("' environment variable"))} ) (C {(unset)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(k_env_safename)} {(DQ (${ VSub_Name name))})] ) left_token: <Left_CommandSub '$('> spids: [260 268] ) ) } ) ] spids: [241 272] ) spids: [235 239] ) ] spids: [221] ) spids: [217 220] ) (FuncDef name: k_env_export body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[298])] spids: [296] ) (ForEach iter_name: name iter_words: [{(DQ ($ VSub_At '$@'))}] do_arg_iter: F body: (DoGroup children: [ (C {(echo)} { (DQ ('export ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (${ VSub_Name name) ('=') (CommandSubPart command_list: (CommandList children: [ (C {(eval)} { (DQ ('echo ') (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) ('{') (${ VSub_Name name) ('}') ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [325 337] ) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) ] spids: [313 342] ) spids: [307 311] ) ] spids: [293] ) spids: [289 292] ) (FuncDef name: k_env_unexport body: (BraceGroup children:[(C {(echo)} {(DQ ('unset ') ($ VSub_At '$@'))})] spids:[363]) spids: [359 362] ) (FuncDef name: k_env_import_gecos body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:userName) op:Equal spids:[397]) (assign_pair lhs:(LhsName name:passwdEntry) op:Equal spids:[399]) (assign_pair lhs:(LhsName name:gecos) op:Equal spids:[401]) (assign_pair lhs:(LhsName name:i) op:Equal spids:[403]) (assign_pair lhs:(LhsName name:name) op:Equal spids:[405]) (assign_pair lhs:(LhsName name:value) op:Equal spids:[407]) ] spids: [395] ) (C {(k_debug)} {(2)} {(DQ ('Importing Environment Variables from GECOS field'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:userName) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(${ VSub_Name USER)} ) spids: [427 433] ) ) } spids: [425] ) ] spids: [425] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:passwdEntry) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(getent)} {(passwd)} {(DQ (${ VSub_Name userName))})] ) left_token: <Left_CommandSub '$('> spids: [438 448] ) } spids: [437] ) ] spids: [437] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_QMark '$?'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (0))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_QMark '$?')} ) ] spids: [16777215 470] ) ] spids: [16777215 478] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:gecos) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name passwdEntry))}) (C {(cut)} {(-d)} {(DQ (':'))} {(-f)} {(5)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [482 504] ) } spids: [481] ) ] spids: [481] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:i) op:Equal rhs:{(1)} spids:[508])] spids: [508] ) (ForEach iter_name: name iter_words: [{(NAME)} {(ROOM)} {(TELEPHONE_WORK)} {(TELEPHONE_HOME)} {(EMAIL)}] do_arg_iter: F body: (DoGroup children: [ (C {(k_env_set)} {(DQ (${ VSub_Name name))} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name gecos))}) (C {(cut)} {(-d)} {(DQ (','))} {(-f)} {(DQ (${ VSub_Name i))}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [541 567] ) ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(k_string_contains)} {(DQ (${ VSub_Name name))} {(DQ (${ VSub_Name KOALEPHANT_ENV_NS_GECOS))} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(export)} {(Lit_VarLike 'KOALEPHANT_ENV_NS_GECOS=') (DQ (${ VSub_Name KOALEPHANT_ENV_NS_GECOS) (' ') (${ VSub_Name name)) } ) ] spids: [16777215 591] ) ] spids: [16777215 608] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:i) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{(${ VSub_Name i)}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [613 622] ) } spids: [612] ) ] spids: [612] ) ] spids: [529 625] ) spids: [517 527] ) ] spids: [392] ) spids: [388 391] ) (FuncDef name: k_env_export_gecos body: (BraceGroup children: [(C {(k_env_export)} {(${ VSub_Name KOALEPHANT_ENV_NS_GECOS)})] spids: [637] ) spids: [633 636] ) (FuncDef name: k_env_unset_gecos body: (BraceGroup children: [ (C {(k_env_unset)} {(${ VSub_Name KOALEPHANT_ENV_NS_GECOS)} {(KOALEPHANT_ENV_NS_GECOS)}) ] spids: [656] ) spids: [652 655] ) (FuncDef name: k_env_import_apache body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:lines) op:Equal spids:[692]) (assign_pair lhs:(LhsName name:line) op:Equal spids:[694]) (assign_pair lhs:(LhsName name:name) op:Equal spids:[696]) (assign_pair lhs:(LhsName name:value) op:Equal spids:[698]) ] spids: [690] ) (AndOr ops: [Op_DAmp] children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(printf)} {(SQ <'\\n '>)})]) left_token: <Left_CommandSub '$('> spids: [706 712] ) ) } spids: [704] ) ] spids: [702] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name IFS> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(' ')}) spids: [719 723] ) ) } spids: [717] ) ] spids: [717] ) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [729] ) ] spids: [727] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:setMode) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(true)}) spids: [741 745] ) ) } spids: [739] ) ] spids: [737] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ (${ VSub_Name file))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ("Invalid file supplied: '") (${ VSub_Name file) ("'"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[780])] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 767] ) ] spids: [16777215 789] ) (C {(k_debug)} {(2)} { (DQ ("Importing Environment Variables from Apache Config: '") (${ VSub_Name file) ("'")) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(-o)} {(-E)} {(DQ ('SetEnv[[:space:]].*'))} {(DQ (${ VSub_Name file))} ) ] ) left_token: <Left_CommandSub '$('> spids: [808 824] ) } spids: [807] ) ] spids: [807] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(KW_Bang '!') (Lit_Other '=')} {(0)} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_QMark '$?')} ) ] spids: [16777215 842] ) ] spids: [16777215 850] ) (ForEach iter_name: line iter_words: [{(${ VSub_Name lines)}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name line))}) (C {(cut)} {(-d)} {(DQ (' '))} {(-f)} {(2)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [869 891] ) } spids: [868] ) ] spids: [868] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name line))}) (C {(cut)} {(-d)} {(DQ (' '))} {(-f)} {(3-)}) (C {(perl)} {(-e)} {(SQ <'s/^"//g; s/(?<!\\\\)"$//g; s/"/\\"/g'>)} {(-p)} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [895 929] ) } spids: [894] ) ] spids: [894] ) (C {(k_env_set)} {(DQ (${ VSub_Name name))} {(DQ (${ VSub_Name value))}) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(k_string_contains)} {(DQ (${ VSub_Name name))} {(DQ (${ VSub_Name KOALEPHANT_ENV_NS_APACHE))} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(export)} {(Lit_VarLike 'KOALEPHANT_ENV_NS_APACHE=') (DQ (${ VSub_Name KOALEPHANT_ENV_NS_APACHE) (' ') (${ VSub_Name name)) } ) ] spids: [16777215 968] ) ] spids: [16777215 985] ) ] spids: [865 988] ) spids: [859 863] ) ] spids: [687] ) spids: [683 686] ) (FuncDef name: k_env_export_apache body: (BraceGroup children: [ (C {(k_env_export)} {(${ VSub_Name KOALEPHANT_ENV_NS_APACHE)} {(KOALEPHANT_ENV_NS_APACHE)}) ] spids: [1001] ) spids: [997 1000] ) (FuncDef name: k_env_unset_apache body: (BraceGroup children: [ (C {(k_env_unset)} {(${ VSub_Name KOALEPHANT_ENV_NS_APACHE)} {(KOALEPHANT_ENV_NS_APACHE)}) ] spids: [1022] ) spids: [1018 1021] ) (FuncDef name: k_env_unexport_apache body: (BraceGroup children: [ (C {(k_env_unexport)} {(${ VSub_Name KOALEPHANT_ENV_NS_APACHE)} {(KOALEPHANT_ENV_NS_APACHE)}) ] spids: [1043] ) spids: [1039 1042] ) (FuncDef name: k_env_import_ldap body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs:(LhsName name:filter) op:Equal spids:[1078]) (assign_pair lhs:(LhsName name:i) op:Equal spids:[1080]) (assign_pair lhs:(LhsName name:line) op:Equal spids:[1082]) (assign_pair lhs:(LhsName name:name) op:Equal spids:[1084]) (assign_pair lhs:(LhsName name:origName) op:Equal spids:[1086]) (assign_pair lhs:(LhsName name:longName) op:Equal spids:[1088]) (assign_pair lhs:(LhsName name:value) op:Equal spids:[1090]) (assign_pair lhs:(LhsName name:result) op:Equal spids:[1092]) ] spids: [1076] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:filter) op: Equal rhs: {(DQ (${ VSub_Number 1))} spids: [1096] ) ] spids: [1096] ) (C {(shift)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Name filter))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('No filter supplied'))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: 16777215 arg_word: {(2)} spids: [1132] ) ] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 1123] ) ] spids: [16777215 1141] ) (C {(k_debug)} {(2)} { (DQ ("Importing Environment Variables from LDAP with Filter: '") (${ VSub_Name filter) ("'") ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ (${ VSub_Name KOALEPHANT_LIB_PATH) (/ldap-attr-maps))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ForEach iter_name: i iter_words: [ {(DQ (${ VSub_Name KOALEPHANT_LIB_PATH) (/ldap-attr-maps/)) (Lit_Other '*') (.attrs) } ] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(DQ (${ VSub_Name i))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ForEach iter_name: line iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(grep)} {(--only-matching)} { (SQ < '^\\(ATTR_[a-zA-Z0-9\\-]\\+\\)=\\([a-zA-Z0-9\\-]\\+\\)$' > ) } {(DQ (${ VSub_Name i))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1225 1239] ) } ] do_arg_iter: F body: (DoGroup children: [(C {(eval)} {(DQ ('local ') (${ VSub_Name line))})] spids: [1242 1255] ) spids: [1224 1240] ) ] spids: [16777215 1216] ) ] spids: [16777215 1258] ) ] spids: [1198 1261] ) spids: [1187 1196] ) ] spids: [16777215 1179] ) ] spids: [16777215 1264] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(ldapsearch)} {(-x)} {(-LLL)} {(-o)} {(ldif-wrap) (Lit_Other '=') (no)} {(DQ ('(') (${ VSub_Name filter) (')'))} {(DQ ($ VSub_At '$@'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1269 1293] ) } spids: [1268] ) ] spids: [1268] ) (ForEach iter_name: line iter_words: [{(${ VSub_Name result)}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name line))}) (C {(grep)} {(--only-matching)} {(DQ ('^[^:]*'))}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1312 1330] ) } spids: [1311] ) ] spids: [1311] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:origName) op: Equal rhs: {(DQ (${ VSub_Name name))} spids: [1333] ) ] spids: [1333] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:longName) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(eval)} {(echo)} { (DQ (EscapedLiteralPart token:<Lit_EscapedChar '\\$'>) (ATTR_) (${ VSub_Name name) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [1342 1354] ) } spids: [1341] ) ] spids: [1341] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ (${ VSub_Name longName))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: {(DQ (${ VSub_Name longName))} spids: [1377] ) ] spids: [1377] ) ] spids: [16777215 1374] ) ] spids: [16777215 1385] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(k_string_upper)} { (CommandSubPart command_list: (CommandList children: [ (C {(k_string_split_camelcase)} {(DQ (${ VSub_Name name))} {(DQ (_))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1393 1405] ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [1390 1406] ) } spids: [1389] ) ] spids: [1389] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:value) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name line))}) (C {(cut)} {(-b)} { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w: { (BracedVarSub token: <VSub_Name origName> prefix_op: VSub_Pound spids: [1428 1431] ) } ) right: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1427 1437] ) (-) ) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1411 1440] ) } spids: [1410] ) ] spids: [1410] ) (C {(k_env_set)} {(DQ (${ VSub_Name name))} {(DQ (${ VSub_Name value))} {(DQ (LDAP))}) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(k_string_contains)} {(DQ (${ VSub_Name name))} {(DQ (${ VSub_Name KOALEPHANT_ENV_NS_LDAP))} ) ] negated: T ) terminator: <Op_Semi ';'> ) ] action: [ (C {(export)} {(Lit_VarLike 'KOALEPHANT_ENV_NS_LDAP=') (DQ (${ VSub_Name KOALEPHANT_ENV_NS_LDAP) (' ') (${ VSub_Name name)) } ) ] spids: [16777215 1483] ) ] spids: [16777215 1500] ) ] spids: [1308 1504] ) spids: [1302 1306] ) ] spids: [1073] ) spids: [1069 1072] ) (FuncDef name: k_env_export_ldap body: (BraceGroup children: [(C {(k_env_export)} {(${ VSub_Name KOALEPHANT_ENV_NS_LDAP)})] spids: [1516] ) spids: [1512 1515] ) (FuncDef name: k_env_unset_ldap body: (BraceGroup children: [ (C {(k_env_unset)} {(${ VSub_Name KOALEPHANT_ENV_NS_LDAP)} {(KOALEPHANT_ENV_NS_LDAP)}) ] spids: [1535] ) spids: [1531 1534] ) ] )