(command.CommandList children: [ (C {(.)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:9) command_list: (command.CommandList children: [(C {(dirname)} {($ Id.VSub_DollarName '$BATS_TEST_DIRNAME')})] ) ) (/lib/utils.sh) } ) (command.ShFunction name: setup_asdf_dir body: (command.BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BASE_DIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:25) command_list: (command.CommandList children: [(C {(mktemp)} {(-dt)} {(asdf.XXXX)})] ) ) } spids: [24] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOME) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$BASE_DIR') (/home)} spids: [34] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ASDF_DIR) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$HOME') (/.asdf)} spids: [39] ) ] ) (C {(mkdir)} {(-p)} {(DQ ($ Id.VSub_DollarName '$ASDF_DIR') (/plugins))}) (C {(mkdir)} {(-p)} {(DQ ($ Id.VSub_DollarName '$ASDF_DIR') (/installs))}) (C {(mkdir)} {(-p)} {(DQ ($ Id.VSub_DollarName '$ASDF_DIR') (/shims))}) (C {(mkdir)} {(-p)} {(DQ ($ Id.VSub_DollarName '$ASDF_DIR') (/tmp))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ASDF_DIR') (/shims) (Id.Lit_Other ':') ($ Id.VSub_DollarName '$PATH') } spids: [84] ) ] ) ] ) ) (command.ShFunction name: install_mock_plugin body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'plugin_name=') ($ Id.VSub_Number '$1')}) (C {(cp)} {(-r)} {(DQ ($ Id.VSub_DollarName '$BATS_TEST_DIRNAME') (/fixtures/dummy_plugin))} { (DQ ($ Id.VSub_DollarName '$ASDF_DIR') (/plugins/) ($ Id.VSub_DollarName '$plugin_name') ) } ) ] ) ) (command.ShFunction name: install_mock_plugin_version body: (command.BraceGroup children: [ (C {(local)} {(Id.Lit_VarLike 'plugin_name=') ($ Id.VSub_Number '$1')}) (C {(local)} {(Id.Lit_VarLike 'plugin_version=') ($ Id.VSub_Number '$2')}) (C {(mkdir)} {(-p)} { (DQ ($ Id.VSub_DollarName '$ASDF_DIR') (/installs/) ($ Id.VSub_DollarName '$plugin_name') (/) ($ Id.VSub_DollarName '$plugin_version') ) } ) ] ) ) (command.ShFunction name: install_dummy_plugin body: (command.BraceGroup children:[(C {(install_mock_plugin)} {(DQ (dummy))})]) ) (command.ShFunction name: install_dummy_version body: (command.BraceGroup children: [(C {(install_mock_plugin_version)} {(DQ (dummy))} {(DQ ($ Id.VSub_Number '$1'))})] ) ) (command.ShFunction name: clean_asdf_dir body: (command.BraceGroup children: [ (C {(rm)} {(-rf)} {(DQ ($ Id.VSub_DollarName '$BASE_DIR'))}) (C {(unset)} {(ASDF_DIR)}) ] ) ) (command.ShFunction name: setup_repo body: (command.BraceGroup children: [ (C {(cp)} {(-r)} {(DQ ($ Id.VSub_DollarName '$BATS_TEST_DIRNAME') (/fixtures/dummy_plugins_repo))} {(DQ ($ Id.VSub_DollarName '$ASDF_DIR') (/repository))} ) (C {(touch)} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:242) command_list: (command.CommandList children:[(C {(asdf_dir)})]) ) (/tmp/repo-updated) ) } ) ] ) ) ] )