(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:GREP_OPTIONS) op: Equal rhs: {(DQ ('--color=never'))} spids: [9] ) ] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:GREP_COLORS) op:Equal rhs:{(EmptyPart)} spids:[17])] spids: [17] ) (FuncDef name: asdf_version body: (BraceGroup children: [ (C {(cat)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [30 32] ) (/VERSION) ) } ) ] spids: [24] ) spids: [20 23] ) (FuncDef name: asdf_dir body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Name '$ASDF_DIR'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:current_script_path) op: Equal rhs: { (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [65 70] ) } spids: [64] ) ] spids: [62] ) (C {(export)} {(ASDF_DIR)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ASDF_DIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (C {(cd)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} { (DQ ($ VSub_Name '$current_script_path' ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [87 93] ) ) } ) ] ) left_token: <Left_CommandSub '$('> spids: [83 95] ) ) } ) (ControlFlow token: <ControlFlow_Exit exit> ) ] ) terminator: <Op_Semi ';'> ) (C {(pwd)}) ] ) left_token: <Left_CommandSub '$('> spids: [79 104] ) } spids: [78] ) ] spids: [78] ) ] spids: [16777215 59] ) ] spids: [16777215 107] ) (C {(echo)} {(DQ ($ VSub_Name '$ASDF_DIR'))}) ] spids: [43] ) spids: [39 42] ) (FuncDef name: asdf_repository_url body: (BraceGroup children: [(C {(echo)} {(DQ ('https://github.com/asdf-vm/asdf-plugins.git'))})] spids: [124] ) spids: [120 123] ) (FuncDef name: get_install_path body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin) op: Equal rhs: {($ VSub_Number '$1')} spids: [145] ) ] spids: [143] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:install_type) op: Equal rhs: {($ VSub_Number '$2')} spids: [151] ) ] spids: [149] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: {($ VSub_Number '$3')} spids: [157] ) ] spids: [155] ) (C {(mkdir)} {(-p)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [166 168] ) (/installs/) (${ VSub_Name plugin) ) } ) (If arms: [ (if_arm cond: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$install_type'))} {(Lit_Other '=')} {(DQ (version))} {(Lit_Other ']')} ) ] action: [ (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [200 202] ) (/installs/) (${ VSub_Name plugin) (/) (${ VSub_Name version) ) } ) ] spids: [16777215 194] ) ] else_action: [ (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [220 222] ) (/installs/) (${ VSub_Name plugin) (/) (${ VSub_Name install_type) (-) (${ VSub_Name version) ) } ) ] spids: [214 238] ) ] spids: [140] ) spids: [136 139] ) (FuncDef name: list_installed_versions body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [252] ) ] spids: [250] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:plugin_path) op:Equal spids:[258])] spids: [256] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:plugin_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(get_plugin_path)} {(DQ ($ VSub_Name '$plugin_name'))})] ) left_token: <Left_CommandSub '$('> spids: [262 268] ) } spids: [261] ) ] spids: [261] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:plugin_installs_path) op:Equal spids:[274])] spids: [272] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:plugin_installs_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [278 280] ) (/installs/) (${ VSub_Name plugin_name) } spids: [277] ) ] spids: [277] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Name '$plugin_installs_path'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (ForEach iter_name: install iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(ls)} {(-d)} {(DQ (${ VSub_Name plugin_installs_path)) (/) (Lit_Other '*') (/) } ] redirects: [ (Redir op: <Redir_Great '2>'> fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [314 330] ) } ] do_arg_iter: F body: (DoGroup children: [(C {(basename)} {(DQ ($ VSub_Name '$install'))})] spids: [333 343] ) spids: [313 331] ) ] spids: [16777215 301] ) ] spids: [16777215 346] ) ] spids: [247] ) spids: [243 246] ) (FuncDef name: check_if_plugin_exists body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ (${ VSub_Number 1))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(display_error)} {(DQ ('No plugin given'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 377] ) ] spids: [16777215 392] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [405 407] ) (/plugins/) ($ VSub_Number '$1') ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(display_error)} {(DQ ('No such plugin'))}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 415] ) ] spids: [16777215 430] ) ] spids: [355] ) spids: [351 354] ) (FuncDef name: check_if_version_exists body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [444] ) ] spids: [442] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: {($ VSub_Number '$2')} spids: [450] ) ] spids: [448] ) (C {(check_if_plugin_exists)} {(DQ ($ VSub_Name '$plugin_name'))}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:install_path) op:Equal spids:[465])] spids: [463] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:install_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(find_install_path)} {(DQ ($ VSub_Name '$plugin_name'))} {(DQ ($ VSub_Name '$version'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [469 479] ) } spids: [468] ) ] spids: [468] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$version'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (system))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$install_path'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(display_error)} { (DQ ('version ') ($ VSub_Name '$version') (' is not installed for ') ($ VSub_Name '$plugin_name') ) } ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 515] ) ] spids: [16777215 533] ) ] spids: [439] ) spids: [435 438] ) (FuncDef name: get_plugin_path body: (BraceGroup children: [ (C {(echo)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [548 550] ) (/plugins/) ($ VSub_Number '$1') ) } ) ] spids: [542] ) spids: [538 541] ) (FuncDef name: display_error body: (BraceGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ($ VSub_Number '$1'))}] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) ] spids: [562] ) spids: [558 561] ) (FuncDef name: get_version_in_dir body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [586] ) ] spids: [584] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:search_path) op: Equal rhs: {($ VSub_Number '$2')} spids: [592] ) ] spids: [590] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:legacy_filenames) op: Equal rhs: {($ VSub_Number '$3')} spids: [598] ) ] spids: [596] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:asdf_version) op:Equal spids:[605])] spids: [603] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:asdf_version) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(parse_asdf_version_file)} {(DQ ($ VSub_Name '$search_path') (/.tool-versions))} {(DQ ($ VSub_Name '$plugin_name'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [609 620] ) } spids: [608] ) ] spids: [608] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$asdf_version'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ($ VSub_Name '$asdf_version') ('|') ($ VSub_Name '$search_path') (/.tool-versions) ) } ) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 637] ) ] spids: [16777215 655] ) (ForEach iter_name: filename iter_words: [{($ VSub_Name '$legacy_filenames')}] do_arg_iter: F body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:legacy_version) op:Equal spids:[673])] spids: [671] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:legacy_version) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(parse_legacy_version_file)} { (DQ ($ VSub_Name '$search_path') (/) ($ VSub_Name '$filename') ) } {(DQ ($ VSub_Name '$plugin_name'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [677 689] ) } spids: [676] ) ] spids: [676] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$legacy_version'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ($ VSub_Name '$legacy_version') ('|') ($ VSub_Name '$search_path') (/) ($ VSub_Name '$filename') ) } ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 706] ) ] spids: [16777215 725] ) ] spids: [668 728] ) spids: [664 666] ) ] spids: [581] ) spids: [577 580] ) (FuncDef name: find_version body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [742] ) ] spids: [740] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:search_path) op: Equal rhs: {($ VSub_Number '$2')} spids: [748] ) ] spids: [746] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:version) op:Equal spids:[755])] spids: [753] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(get_version_from_env)} {(DQ ($ VSub_Name '$plugin_name'))})] ) left_token: <Left_CommandSub '$('> spids: [759 765] ) } spids: [758] ) ] spids: [758] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$version'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name '$version'))}) (ControlFlow token:<ControlFlow_Return return> arg_word:{(0)}) ] spids: [16777215 781] ) ] spids: [16777215 796] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:plugin_path) op:Equal spids:[802])] spids: [800] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:plugin_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(get_plugin_path)} {(DQ ($ VSub_Name '$plugin_name'))})] ) left_token: <Left_CommandSub '$('> spids: [806 812] ) } spids: [805] ) ] spids: [805] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:legacy_config) op:Equal spids:[817])] spids: [815] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:legacy_config) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(get_asdf_config_value)} {(DQ (legacy_version_file))})] ) left_token: <Left_CommandSub '$('> spids: [821 827] ) } spids: [820] ) ] spids: [820] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:legacy_list_filenames_script) op: Equal spids: [832] ) ] spids: [830] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:legacy_list_filenames_script) op: Equal rhs: {(DQ (${ VSub_Name plugin_path) (/bin/list-legacy-filenames))} spids: [835] ) ] spids: [835] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:legacy_filenames) op: Equal rhs: {(DQ )} spids: [846] ) ] spids: [844] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp] children: [ (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$legacy_config'))} {(Lit_Other '=')} {(DQ (yes))} {(Lit_Other ']')} ) (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$legacy_list_filenames_script'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:legacy_filenames) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(bash)} {(DQ ($ VSub_Name '$legacy_list_filenames_script'))}) ] ) left_token: <Left_CommandSub '$('> spids: [885 891] ) } spids: [884] ) ] spids: [884] ) ] spids: [16777215 881] ) ] spids: [16777215 894] ) (WhileUntil keyword: <KW_While while> cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$search_path'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(get_version_in_dir)} {(DQ ($ VSub_Name '$plugin_name'))} {(DQ ($ VSub_Name '$search_path'))} {(DQ ($ VSub_Name '$legacy_filenames'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [920 934] ) } spids: [919] ) ] spids: [919] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$version'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name '$version'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 950] ) ] spids: [16777215 965] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:search_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ ($ VSub_Name '$search_path'))})] ) left_token: <Left_CommandSub '$('> spids: [969 975] ) } spids: [968] ) ] spids: [968] ) ] spids: [916 978] ) ) (C {(get_version_in_dir)} {(DQ ($ VSub_Name '$plugin_name'))} {(DQ ($ VSub_Name '$HOME'))} {(DQ ($ VSub_Name '$legacy_filenames'))} ) ] spids: [737] ) spids: [733 736] ) (FuncDef name: get_version_from_env body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [1009] ) ] spids: [1007] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:upcase_name) op:Equal spids:[1015])] spids: [1013] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:upcase_name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$plugin_name'))}) (C {(tr)} {(SQ <'[:lower:]'>)} {(SQ <'[:upper:]'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1019 1037] ) } spids: [1018] ) ] spids: [1018] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version_env_var) op: Equal rhs: {(DQ (ASDF_) (${ VSub_Name upcase_name) (_VERSION))} spids: [1042] ) ] spids: [1040] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: { (BracedVarSub token: <VSub_Name version_env_var> prefix_op: VSub_Bang spids: [1055 1058] ) } spids: [1054] ) ] spids: [1052] ) (C {(echo)} {(DQ ($ VSub_Name '$version'))}) ] spids: [1004] ) spids: [999 1003] ) (FuncDef name: find_install_path body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [1079] ) ] spids: [1077] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: {($ VSub_Number '$2')} spids: [1085] ) ] spids: [1083] ) (SimpleCommand words: [{(read)} {(-a)} {(version_info)}] redirects: [ (Redir op: <Redir_TLess '<<<'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$version'))} ) ] more_env: [(env_pair name:IFS val:{(SQ <':'>)} spids:[1094])] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$version'))} {(Lit_Other '=')} {(DQ (system))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ )})] spids: [16777215 1130] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (BracedVarSub token: <VSub_Name version_info> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1144 1149] ) ) } {(Lit_Other '=')} {(DQ (ref))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:install_type) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name version_info> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1168 1173] ) ) } spids: [1166] ) ] spids: [1164] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name version_info> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [1181 1186] ) ) } spids: [1179] ) ] spids: [1177] ) (C {(get_install_path)} {(DQ ($ VSub_Name '$plugin_name'))} {(DQ ($ VSub_Name '$install_type'))} {(DQ ($ VSub_Name '$version'))} ) ] spids: [1139 1161] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (BracedVarSub token: <VSub_Name version_info> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1210 1215] ) ) } {(Lit_Other '=')} {(DQ (path))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:install_type) op: Equal rhs: {(DQ (path))} spids: [1248] ) ] spids: [1246] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: {(DQ (path))} spids: [1256] ) ] spids: [1254] ) (C {(echo)} { (DQ (BracedVarSub token: <VSub_Name version_info> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [1265 1270] ) ) } ) ] spids: [1205 1227] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:install_type) op: Equal rhs: {(DQ (version))} spids: [1279] ) ] spids: [1277] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name version_info> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1289 1294] ) ) } spids: [1287] ) ] spids: [1285] ) (C {(get_install_path)} {(DQ ($ VSub_Name '$plugin_name'))} {(DQ ($ VSub_Name '$install_type'))} {(DQ ($ VSub_Name '$version'))} ) ] spids: [1274 1313] ) ] spids: [1074] ) spids: [1070 1073] ) (FuncDef name: get_executable_path body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [1327] ) ] spids: [1325] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: {($ VSub_Number '$2')} spids: [1333] ) ] spids: [1331] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:executable_path) op: Equal rhs: {($ VSub_Number '$3')} spids: [1339] ) ] spids: [1337] ) (C {(check_if_version_exists)} {(DQ ($ VSub_Name '$plugin_name'))} {(DQ ($ VSub_Name '$version'))} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$version'))} {(Lit_Other '=')} {(DQ (system))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name '$PATH'))}) (C {(sed)} {(-e)} { (DQ ('s|') ($ VSub_Name '$ASDF_DIR') ('/shims||g; s|::|:|g') ) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1377 1395] ) } spids: [1376] ) ] spids: [1376] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(basename)} {(DQ ($ VSub_Name '$executable_path'))})] ) left_token: <Left_CommandSub '$('> spids: [1399 1405] ) } spids: [1398] ) ] spids: [1398] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cmd_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(which)} {(DQ ($ VSub_Name '$cmd'))}] redirects: [ (Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(1)} ) ] more_env: [ (env_pair name: PATH val: {($ VSub_Name '$path')} spids: [1410] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1409 1421] ) } spids: [1408] ) ] spids: [1408] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})] spids: [16777215 1441] ) ] spids: [16777215 1449] ) (C {(echo)} {(DQ ($ VSub_Name '$cmd_path'))}) ] spids: [16777215 1373] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:install_path) op:Equal spids:[1464])] spids: [1462] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:install_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(find_install_path)} {(DQ ($ VSub_Name '$plugin_name'))} {(DQ ($ VSub_Name '$version'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1468 1478] ) } spids: [1467] ) ] spids: [1467] ) (C {(echo)} {(DQ (${ VSub_Name install_path)) (/) (DQ (${ VSub_Name executable_path))}) ] spids: [1459 1496] ) ] spids: [1322] ) spids: [1318 1321] ) (FuncDef name: parse_asdf_version_file body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:file_path) op: Equal rhs: {($ VSub_Number '$1')} spids: [1510] ) ] spids: [1508] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$2')} spids: [1516] ) ] spids: [1514] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$file_path'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:version) op:Equal spids:[1539])] spids: [1537] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(DQ (${ VSub_Name plugin_name) (' '))} {(DQ ($ VSub_Name '$file_path'))} ) (C {(sed)} {(-e)} {(DQ ('s/^') (${ VSub_Name plugin_name) (' //'))} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1543 1570] ) } spids: [1542] ) ] spids: [1542] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$version'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ($ VSub_Name '$version'))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(0)} ) ] spids: [16777215 1586] ) ] spids: [16777215 1601] ) ] spids: [16777215 1534] ) ] spids: [16777215 1604] ) ] spids: [1505] ) spids: [1501 1504] ) (FuncDef name: parse_legacy_version_file body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:file_path) op: Equal rhs: {($ VSub_Number '$1')} spids: [1618] ) ] spids: [1616] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$2')} spids: [1624] ) ] spids: [1622] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:plugin_path) op:Equal spids:[1631])] spids: [1629] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:plugin_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(get_plugin_path)} {(DQ ($ VSub_Name '$plugin_name'))})] ) left_token: <Left_CommandSub '$('> spids: [1635 1641] ) } spids: [1634] ) ] spids: [1634] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:parse_legacy_script) op:Equal spids:[1646])] spids: [1644] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:parse_legacy_script) op: Equal rhs: {(DQ (${ VSub_Name plugin_path) (/bin/parse-legacy-file))} spids: [1649] ) ] spids: [1649] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$file_path'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$parse_legacy_script'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(bash)} {(DQ ($ VSub_Name '$parse_legacy_script'))} {(DQ ($ VSub_Name '$file_path'))} ) ] spids: [16777215 1688] ) ] else_action: [(C {(cat)} {(DQ ($ VSub_Name '$file_path'))})] spids: [1702 1712] ) ] spids: [16777215 1672] ) ] spids: [16777215 1715] ) ] spids: [1613] ) spids: [1609 1612] ) (FuncDef name: get_preset_version_for body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [1729] ) ] spids: [1727] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:search_path) op:Equal spids:[1735])] spids: [1733] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:search_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_CommandSub '$('> spids: [1739 1741] ) } spids: [1738] ) ] spids: [1738] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:version_and_path) op:Equal spids:[1746])] spids: [1744] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version_and_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(find_version)} {(DQ ($ VSub_Name '$plugin_name'))} {(DQ ($ VSub_Name '$search_path'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1750 1760] ) } spids: [1749] ) ] spids: [1749] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:version) op:Equal spids:[1765])] spids: [1763] ) (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(cut)} {(-d)} {(SQ <'|'>)} {(-f)} {(1)}] redirects: [ (Redir op: <Redir_TLess '<<<'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$version_and_path'))} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1769 1787] ) } spids: [1768] ) ] spids: [1768] ) terminator: <Op_Semi ';'> ) (C {(echo)} {(DQ ($ VSub_Name '$version'))}) ] spids: [1724] ) spids: [1720 1723] ) (FuncDef name: get_asdf_config_value_from_file body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:config_path) op: Equal rhs: {($ VSub_Number '$1')} spids: [1810] ) ] spids: [1808] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:key) op: Equal rhs: {($ VSub_Number '$2')} spids: [1816] ) ] spids: [1814] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Name '$config_path'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Return return> arg_word:{(0)})] spids: [16777215 1836] ) ] spids: [16777215 1844] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:result) op:Equal spids:[1850])] spids: [1848] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(-E)} { (DQ ('^') (Lit_Other '\\') ('s*') ($ VSub_Name '$key') (Lit_Other '\\') ('s*=') ) } {(DQ ($ VSub_Name '$config_path'))} ) (C {(awk)} {(-F)} {(SQ <'='>)} {(SQ <'{ gsub(/ /, "", $2); print $2 }'>)} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1854 1885] ) } spids: [1853] ) ] spids: [1853] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$result'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ ($ VSub_Name '$result'))})] spids: [16777215 1901] ) ] spids: [16777215 1911] ) ] spids: [1805] ) spids: [1801 1804] ) (FuncDef name: get_asdf_config_value body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:key) op: Equal rhs: {($ VSub_Number '$1')} spids: [1925] ) ] spids: [1923] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:config_path) op: Equal rhs: { (BracedVarSub token: <VSub_Name AZDF_CONFIG_FILE> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(DQ ($ VSub_Name '$HOME') (/.asdfrc))} ) spids: [1932 1939] ) } spids: [1931] ) ] spids: [1929] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:default_config_path) op: Equal rhs: { (BracedVarSub token: <VSub_Name AZDF_CONFIG_DEFAULT_FILE> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [1949 1951] ) (/defaults) ) } ) spids: [1945 1954] ) } spids: [1944] ) ] spids: [1942] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:result) op:Equal spids:[1960])] spids: [1958] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(get_asdf_config_value_from_file)} {(DQ ($ VSub_Name '$config_path'))} {(DQ ($ VSub_Name '$key'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [1964 1974] ) } spids: [1963] ) ] spids: [1963] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$result'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(echo)} {(DQ ($ VSub_Name '$result'))})] spids: [16777215 1991] ) ] else_action: [ (C {(get_asdf_config_value_from_file)} {(DQ ($ VSub_Name '$default_config_path'))} {(DQ ($ VSub_Name '$key'))} ) ] spids: [2001 2015] ) ] spids: [1920] ) spids: [1916 1919] ) (FuncDef name: repository_needs_update body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:update_file_dir) op:Equal spids:[2029])] spids: [2027] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:update_file_dir) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [2034 2036] ) (/tmp) ) } spids: [2032] ) ] spids: [2032] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:update_file_name) op:Equal spids:[2043])] spids: [2041] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:update_file_name) op: Equal rhs: {(DQ (repo-updated))} spids: [2046] ) ] spids: [2046] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:find_result) op:Equal spids:[2058])] spids: [2056] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:find_result) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(find)} {(DQ ($ VSub_Name '$update_file_dir'))} {(-name)} {(DQ ($ VSub_Name '$update_file_name'))} {(-type)} {(f)} {(-mtime)} {(Lit_Other '+') (1)} {(-print)} ) ] ) left_token: <Left_CommandSub '$('> spids: [2062 2085] ) } spids: [2061] ) ] spids: [2061] ) (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Name '$find_result'))} {(Lit_Other ']')}) ] spids: [2024] ) spids: [2020 2023] ) (FuncDef name: initialize_or_update_repository body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:repository_url) op:Equal spids:[2110])] spids: [2108] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:repository_path) op:Equal spids:[2115])] spids: [2113] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:repository_url) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(asdf_repository_url)})]) left_token: <Left_CommandSub '$('> spids: [2120 2122] ) } spids: [2119] ) ] spids: [2119] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:repository_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [2126 2128] ) (/repository) } spids: [2125] ) ] spids: [2125] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$repository_path'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(DQ ('initializing plugin repository...'))}) (C {(git)} {(clone)} {(DQ ($ VSub_Name '$repository_url'))} {(DQ ($ VSub_Name '$repository_path'))} ) ] spids: [16777215 2148] ) (if_arm cond: [(Sentence child:(C {(repository_needs_update)}) terminator:<Op_Semi ';'>)] action: [ (C {(echo)} {(DQ ('updating plugin repository...'))}) (Subshell child: (AndOr ops: [Op_DAmp Op_DAmp] children: [ (C {(cd)} {(DQ ($ VSub_Name '$repository_path'))}) (C {(git)} {(fetch)}) (C {(git)} {(reset)} {(--hard)} {(origin/master)}) ] ) spids: [2186 2208] ) ] spids: [2171 2176] ) ] spids: [16777215 2211] ) (C {(mkdir)} {(-p)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [2220 2222] ) (/tmp) ) } ) (C {(touch)} { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [2230 2232] ) (/tmp/repo-updated) ) } ) ] spids: [2105] ) spids: [2101 2104] ) (FuncDef name: get_plugin_source_url body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:plugin_name) op: Equal rhs: {($ VSub_Number '$1')} spids: [2248] ) ] spids: [2246] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:plugin_config) op:Equal spids:[2254])] spids: [2252] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:plugin_config) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(asdf_dir)})]) left_token: <Left_CommandSub '$('> spids: [2260 2262] ) (/repository/plugins/) ($ VSub_Name '$plugin_name') ) } spids: [2258] ) ] spids: [2258] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$plugin_config'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {(grep)} {(DQ (repository))} {(DQ ($ VSub_Name '$plugin_config'))}) (C {(awk)} {(-F) (SQ <'='>)} {(SQ <'{print $2}'>)}) (C {(sed)} {(SQ <'s/ //'>)}) ] negated: F ) ] spids: [16777215 2283] ) ] spids: [16777215 2318] ) ] spids: [2243] ) spids: [2239 2242] ) ] )