boxcar 0.10005.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +48 -0
- data/.gitsetup.yml +6 -0
- data/.yardopts +1 -0
- data/CHANGELOG.md +696 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +40 -0
- data/LICENSE +21 -0
- data/README.md +91 -0
- data/Rakefile +18 -0
- data/VERSION +1 -0
- data/bin/_bump +126 -0
- data/bin/_jason +172 -0
- data/bin/_log4sh +3840 -0
- data/bin/_meat +172 -0
- data/bin/_prime +8 -0
- data/bin/_shflags +1012 -0
- data/bin/_shunit +1048 -0
- data/bin/_sub +37 -0
- data/bin/_treadstone +8 -0
- data/bin/_versions +174 -0
- data/bin/build +15 -0
- data/bin/bump +15 -0
- data/bin/edit +15 -0
- data/bin/publish +15 -0
- data/bin/stub +15 -0
- data/bin/vagrant +60 -0
- data/boxcar.gemspec +32 -0
- data/config/default.rb +30 -0
- data/contrib/README.md +12 -0
- data/contrib/emacs/vagrant.el +8 -0
- data/contrib/vim/vagrantfile.vim +9 -0
- data/keys/README.md +17 -0
- data/keys/vagrant +27 -0
- data/keys/vagrant.pub +1 -0
- data/lib/development.rb +25 -0
- data/lib/vagrant.rb +197 -0
- data/lib/vagrant/action.rb +63 -0
- data/lib/vagrant/action/box/destroy.rb +25 -0
- data/lib/vagrant/action/box/download.rb +84 -0
- data/lib/vagrant/action/box/package.rb +19 -0
- data/lib/vagrant/action/box/unpackage.rb +61 -0
- data/lib/vagrant/action/box/verify.rb +23 -0
- data/lib/vagrant/action/builder.rb +128 -0
- data/lib/vagrant/action/builtin.rb +171 -0
- data/lib/vagrant/action/env/set.rb +21 -0
- data/lib/vagrant/action/environment.rb +12 -0
- data/lib/vagrant/action/general/check_virtualbox.rb +28 -0
- data/lib/vagrant/action/general/package.rb +101 -0
- data/lib/vagrant/action/general/validate.rb +18 -0
- data/lib/vagrant/action/runner.rb +53 -0
- data/lib/vagrant/action/vm/boot.rb +53 -0
- data/lib/vagrant/action/vm/check_accessible.rb +23 -0
- data/lib/vagrant/action/vm/check_box.rb +33 -0
- data/lib/vagrant/action/vm/check_guest_additions.rb +38 -0
- data/lib/vagrant/action/vm/check_port_collisions.rb +89 -0
- data/lib/vagrant/action/vm/clean_machine_folder.rb +43 -0
- data/lib/vagrant/action/vm/clear_forwarded_ports.rb +18 -0
- data/lib/vagrant/action/vm/clear_network_interfaces.rb +31 -0
- data/lib/vagrant/action/vm/clear_shared_folders.rb +18 -0
- data/lib/vagrant/action/vm/customize.rb +36 -0
- data/lib/vagrant/action/vm/default_name.rb +22 -0
- data/lib/vagrant/action/vm/destroy.rb +19 -0
- data/lib/vagrant/action/vm/destroy_unused_network_interfaces.rb +20 -0
- data/lib/vagrant/action/vm/discard_state.rb +22 -0
- data/lib/vagrant/action/vm/export.rb +57 -0
- data/lib/vagrant/action/vm/forward_ports.rb +92 -0
- data/lib/vagrant/action/vm/halt.rb +32 -0
- data/lib/vagrant/action/vm/host_name.rb +21 -0
- data/lib/vagrant/action/vm/import.rb +48 -0
- data/lib/vagrant/action/vm/match_mac_address.rb +21 -0
- data/lib/vagrant/action/vm/network.rb +403 -0
- data/lib/vagrant/action/vm/nfs.rb +196 -0
- data/lib/vagrant/action/vm/package.rb +23 -0
- data/lib/vagrant/action/vm/package_vagrantfile.rb +36 -0
- data/lib/vagrant/action/vm/provision.rb +61 -0
- data/lib/vagrant/action/vm/provisioner_cleanup.rb +26 -0
- data/lib/vagrant/action/vm/prune_nfs_exports.rb +20 -0
- data/lib/vagrant/action/vm/resume.rb +20 -0
- data/lib/vagrant/action/vm/sane_defaults.rb +78 -0
- data/lib/vagrant/action/vm/setup_package_files.rb +54 -0
- data/lib/vagrant/action/vm/share_folders.rb +114 -0
- data/lib/vagrant/action/vm/suspend.rb +20 -0
- data/lib/vagrant/action/warden.rb +92 -0
- data/lib/vagrant/box.rb +44 -0
- data/lib/vagrant/box_collection.rb +58 -0
- data/lib/vagrant/cli.rb +76 -0
- data/lib/vagrant/command.rb +24 -0
- data/lib/vagrant/command/base.rb +167 -0
- data/lib/vagrant/command/box.rb +58 -0
- data/lib/vagrant/command/box_add.rb +37 -0
- data/lib/vagrant/command/box_list.rb +28 -0
- data/lib/vagrant/command/box_remove.rb +27 -0
- data/lib/vagrant/command/box_repackage.rb +27 -0
- data/lib/vagrant/command/destroy.rb +64 -0
- data/lib/vagrant/command/gem.rb +39 -0
- data/lib/vagrant/command/halt.rb +39 -0
- data/lib/vagrant/command/init.rb +40 -0
- data/lib/vagrant/command/package.rb +75 -0
- data/lib/vagrant/command/provision.rb +40 -0
- data/lib/vagrant/command/reload.rb +39 -0
- data/lib/vagrant/command/resume.rb +33 -0
- data/lib/vagrant/command/ssh.rb +90 -0
- data/lib/vagrant/command/ssh_config.rb +51 -0
- data/lib/vagrant/command/start_mixins.rb +26 -0
- data/lib/vagrant/command/status.rb +36 -0
- data/lib/vagrant/command/suspend.rb +33 -0
- data/lib/vagrant/command/up.rb +40 -0
- data/lib/vagrant/communication.rb +7 -0
- data/lib/vagrant/communication/base.rb +56 -0
- data/lib/vagrant/communication/ssh.rb +229 -0
- data/lib/vagrant/config.rb +49 -0
- data/lib/vagrant/config/base.rb +82 -0
- data/lib/vagrant/config/container.rb +37 -0
- data/lib/vagrant/config/error_recorder.rb +19 -0
- data/lib/vagrant/config/loader.rb +127 -0
- data/lib/vagrant/config/nfs.rb +8 -0
- data/lib/vagrant/config/package.rb +7 -0
- data/lib/vagrant/config/ssh.rb +27 -0
- data/lib/vagrant/config/top.rb +72 -0
- data/lib/vagrant/config/vagrant.rb +14 -0
- data/lib/vagrant/config/vm.rb +168 -0
- data/lib/vagrant/config/vm/provisioner.rb +52 -0
- data/lib/vagrant/config/vm/sub_vm.rb +17 -0
- data/lib/vagrant/data_store.rb +92 -0
- data/lib/vagrant/downloaders.rb +7 -0
- data/lib/vagrant/downloaders/base.rb +25 -0
- data/lib/vagrant/downloaders/file.rb +22 -0
- data/lib/vagrant/downloaders/http.rb +97 -0
- data/lib/vagrant/driver.rb +8 -0
- data/lib/vagrant/driver/virtualbox.rb +134 -0
- data/lib/vagrant/driver/virtualbox_4_0.rb +459 -0
- data/lib/vagrant/driver/virtualbox_4_1.rb +459 -0
- data/lib/vagrant/driver/virtualbox_4_2.rb +606 -0
- data/lib/vagrant/driver/virtualbox_base.rb +309 -0
- data/lib/vagrant/environment.rb +517 -0
- data/lib/vagrant/errors.rb +441 -0
- data/lib/vagrant/guest.rb +18 -0
- data/lib/vagrant/guest/arch.rb +56 -0
- data/lib/vagrant/guest/base.rb +99 -0
- data/lib/vagrant/guest/debian.rb +64 -0
- data/lib/vagrant/guest/fedora.rb +66 -0
- data/lib/vagrant/guest/freebsd.rb +86 -0
- data/lib/vagrant/guest/gentoo.rb +46 -0
- data/lib/vagrant/guest/linux.rb +118 -0
- data/lib/vagrant/guest/linux/config.rb +19 -0
- data/lib/vagrant/guest/linux/error.rb +9 -0
- data/lib/vagrant/guest/openbsd.rb +20 -0
- data/lib/vagrant/guest/redhat.rb +67 -0
- data/lib/vagrant/guest/solaris.rb +118 -0
- data/lib/vagrant/guest/suse.rb +9 -0
- data/lib/vagrant/guest/ubuntu.rb +23 -0
- data/lib/vagrant/hosts.rb +37 -0
- data/lib/vagrant/hosts/arch.rb +55 -0
- data/lib/vagrant/hosts/base.rb +66 -0
- data/lib/vagrant/hosts/bsd.rb +97 -0
- data/lib/vagrant/hosts/fedora.rb +47 -0
- data/lib/vagrant/hosts/freebsd.rb +41 -0
- data/lib/vagrant/hosts/gentoo.rb +20 -0
- data/lib/vagrant/hosts/linux.rb +94 -0
- data/lib/vagrant/hosts/opensuse.rb +30 -0
- data/lib/vagrant/hosts/windows.rb +16 -0
- data/lib/vagrant/plugin.rb +81 -0
- data/lib/vagrant/provisioners.rb +12 -0
- data/lib/vagrant/provisioners/base.rb +44 -0
- data/lib/vagrant/provisioners/chef.rb +168 -0
- data/lib/vagrant/provisioners/chef_client.rb +132 -0
- data/lib/vagrant/provisioners/chef_solo.rb +234 -0
- data/lib/vagrant/provisioners/puppet.rb +175 -0
- data/lib/vagrant/provisioners/puppet_server.rb +78 -0
- data/lib/vagrant/provisioners/shell.rb +96 -0
- data/lib/vagrant/registry.rb +52 -0
- data/lib/vagrant/ssh.rb +126 -0
- data/lib/vagrant/test_helpers.rb +154 -0
- data/lib/vagrant/ui.rb +168 -0
- data/lib/vagrant/util.rb +12 -0
- data/lib/vagrant/util/ansi_escape_code_remover.rb +34 -0
- data/lib/vagrant/util/busy.rb +59 -0
- data/lib/vagrant/util/counter.rb +24 -0
- data/lib/vagrant/util/file_checksum.rb +38 -0
- data/lib/vagrant/util/file_mode.rb +12 -0
- data/lib/vagrant/util/hash_with_indifferent_access.rb +63 -0
- data/lib/vagrant/util/is_port_open.rb +38 -0
- data/lib/vagrant/util/line_ending_helpers.rb +14 -0
- data/lib/vagrant/util/network_ip.rb +28 -0
- data/lib/vagrant/util/platform.rb +68 -0
- data/lib/vagrant/util/retryable.rb +25 -0
- data/lib/vagrant/util/safe_exec.rb +36 -0
- data/lib/vagrant/util/safe_puts.rb +31 -0
- data/lib/vagrant/util/stacked_proc_runner.rb +35 -0
- data/lib/vagrant/util/subprocess.rb +247 -0
- data/lib/vagrant/util/template_renderer.rb +83 -0
- data/lib/vagrant/version.rb +7 -0
- data/lib/vagrant/vm.rb +195 -0
- data/libexec/build +30 -0
- data/libexec/build-gem +30 -0
- data/libexec/bump +32 -0
- data/libexec/edit-gem +81 -0
- data/libexec/publish +58 -0
- data/libexec/publish-gem +58 -0
- data/libexec/stub-prepare +37 -0
- data/tasks/acceptance.rake +113 -0
- data/tasks/bundler.rake +3 -0
- data/tasks/test.rake +20 -0
- data/templates/commands/init/Vagrantfile.erb +99 -0
- data/templates/commands/ssh_config/config.erb +15 -0
- data/templates/config/validation_failed.erb +7 -0
- data/templates/guests/arch/network_dhcp.erb +7 -0
- data/templates/guests/arch/network_static.erb +7 -0
- data/templates/guests/debian/network_dhcp.erb +6 -0
- data/templates/guests/debian/network_static.erb +7 -0
- data/templates/guests/fedora/network_dhcp.erb +6 -0
- data/templates/guests/fedora/network_static.erb +13 -0
- data/templates/guests/freebsd/network_dhcp.erb +3 -0
- data/templates/guests/freebsd/network_static.erb +3 -0
- data/templates/guests/gentoo/network_dhcp.erb +4 -0
- data/templates/guests/gentoo/network_static.erb +4 -0
- data/templates/guests/redhat/network_dhcp.erb +6 -0
- data/templates/guests/redhat/network_static.erb +7 -0
- data/templates/locales/en.yml +747 -0
- data/templates/nfs/exports.erb +5 -0
- data/templates/nfs/exports_freebsd.erb +5 -0
- data/templates/nfs/exports_linux.erb +5 -0
- data/templates/package_Vagrantfile.erb +11 -0
- data/templates/provisioners/chef_client/client.erb +32 -0
- data/templates/provisioners/chef_solo/solo.erb +25 -0
- data/test/acceptance/base.rb +48 -0
- data/test/acceptance/box_test.rb +99 -0
- data/test/acceptance/destroy_test.rb +37 -0
- data/test/acceptance/halt_test.rb +72 -0
- data/test/acceptance/init_test.rb +33 -0
- data/test/acceptance/networking/host_only_test.rb +37 -0
- data/test/acceptance/networking/port_forward_test.rb +125 -0
- data/test/acceptance/package_test.rb +46 -0
- data/test/acceptance/provisioning/basic_test.rb +61 -0
- data/test/acceptance/provisioning/chef_solo_test.rb +37 -0
- data/test/acceptance/provisioning/shell_test.rb +53 -0
- data/test/acceptance/resume_test.rb +17 -0
- data/test/acceptance/shared_folders_test.rb +84 -0
- data/test/acceptance/skeletons/chef_solo_basic/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_basic/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/skeletons/chef_solo_json/README.md +3 -0
- data/test/acceptance/skeletons/chef_solo_json/cookbooks/basic/recipes/default.rb +6 -0
- data/test/acceptance/skeletons/provisioner_multi/README.md +3 -0
- data/test/acceptance/skeletons/provisioner_multi/cookbooks/basic/recipes/default.rb +5 -0
- data/test/acceptance/ssh_test.rb +46 -0
- data/test/acceptance/support/config.rb +42 -0
- data/test/acceptance/support/isolated_environment.rb +117 -0
- data/test/acceptance/support/matchers/have_color.rb +9 -0
- data/test/acceptance/support/matchers/match_output.rb +14 -0
- data/test/acceptance/support/matchers/succeed.rb +14 -0
- data/test/acceptance/support/network_tests.rb +29 -0
- data/test/acceptance/support/output.rb +95 -0
- data/test/acceptance/support/shared/base_context.rb +72 -0
- data/test/acceptance/support/shared/command_examples.rb +33 -0
- data/test/acceptance/support/virtualbox.rb +36 -0
- data/test/acceptance/suspend_test.rb +56 -0
- data/test/acceptance/up_basic_test.rb +33 -0
- data/test/acceptance/up_with_box_url.rb +40 -0
- data/test/acceptance/vagrant_test.rb +47 -0
- data/test/acceptance/version_test.rb +15 -0
- data/test/buildbot/README.md +72 -0
- data/test/buildbot/buildbot_config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/__init__.py +0 -0
- data/test/buildbot/buildbot_config/config/loader.py +24 -0
- data/test/buildbot/buildbot_config/config/master.py +24 -0
- data/test/buildbot/buildbot_config/config/slave.py +22 -0
- data/test/buildbot/buildbot_config/master/__init__.py +6 -0
- data/test/buildbot/buildbot_config/master/builders.py +78 -0
- data/test/buildbot/buildbot_config/master/buildsteps.py +100 -0
- data/test/buildbot/buildbot_config/master/change_sources.py +8 -0
- data/test/buildbot/buildbot_config/master/schedulers.py +32 -0
- data/test/buildbot/buildbot_config/master/slaves.py +60 -0
- data/test/buildbot/buildbot_config/master/status.py +52 -0
- data/test/buildbot/master/Makefile.sample +28 -0
- data/test/buildbot/master/buildbot.tac +36 -0
- data/test/buildbot/master/master.cfg +67 -0
- data/test/buildbot/master/public_html/bg_gradient.jpg +0 -0
- data/test/buildbot/master/public_html/default.css +545 -0
- data/test/buildbot/master/public_html/favicon.ico +0 -0
- data/test/buildbot/master/public_html/robots.txt +10 -0
- data/test/buildbot/master/public_html/static/css/bootstrap-1.4.0.min.css +356 -0
- data/test/buildbot/master/public_html/static/css/prettify.css +97 -0
- data/test/buildbot/master/public_html/static/css/syntax.css +60 -0
- data/test/buildbot/master/public_html/static/css/vagrant.base.css +205 -0
- data/test/buildbot/master/public_html/static/images/base_box_mac.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/getting-started/success.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/icons/error.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_chilling.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_holding.png +0 -0
- data/test/buildbot/master/public_html/static/images/vagrant_looking.png +0 -0
- data/test/buildbot/master/public_html/static/images/windows/alter_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/edit_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/environment_variables_button.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/port_and_ppk_path.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/ppk_selection.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/putty_first_screen.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/save_result.jpg +0 -0
- data/test/buildbot/master/public_html/static/images/windows/vbox_manage_default_location.jpg +0 -0
- data/test/buildbot/master/public_html/static/js/bootstrap-tabs.js +80 -0
- data/test/buildbot/master/public_html/static/js/jquery-1.7.min.js +4 -0
- data/test/buildbot/master/templates/authfail.html +9 -0
- data/test/buildbot/master/templates/build.html +205 -0
- data/test/buildbot/master/templates/builder.html +118 -0
- data/test/buildbot/master/templates/builders.html +33 -0
- data/test/buildbot/master/templates/buildslave.html +72 -0
- data/test/buildbot/master/templates/buildslaves.html +70 -0
- data/test/buildbot/master/templates/change.html +15 -0
- data/test/buildbot/master/templates/layouts/base.html +58 -0
- data/test/buildbot/master/templates/macros/box.html +37 -0
- data/test/buildbot/master/templates/macros/build_line.html +50 -0
- data/test/buildbot/master/templates/macros/change.html +81 -0
- data/test/buildbot/master/templates/macros/forms.html +300 -0
- data/test/buildbot/master/templates/root.html +42 -0
- data/test/buildbot/master/templates/waterfall.html +53 -0
- data/test/buildbot/requirements.txt +4 -0
- data/test/buildbot/scripts/deploy.sh +38 -0
- data/test/buildbot/scripts/setup.sh +107 -0
- data/test/buildbot/slave/buildbot.tac +43 -0
- data/test/buildbot/slave/info/admin +1 -0
- data/test/buildbot/slave/info/host +1 -0
- data/test/buildbot/tests/__init__.py +0 -0
- data/test/buildbot/tests/master/__init__.py +0 -0
- data/test/buildbot/tests/master/test_slaves.py +41 -0
- data/test/buildbot/vendor/choices-0.4.0.tar.gz +0 -0
- data/test/config/acceptance_boxes.yml +7 -0
- data/test/support/isolated_environment.rb +46 -0
- data/test/support/tempdir.rb +34 -0
- data/test/unit/base.rb +21 -0
- data/test/unit/support/isolated_environment.rb +47 -0
- data/test/unit/support/shared/base_context.rb +30 -0
- data/test/unit/vagrant/action/builder_test.rb +156 -0
- data/test/unit/vagrant/action/environment_test.rb +16 -0
- data/test/unit/vagrant/action/runner_test.rb +65 -0
- data/test/unit/vagrant/action/warden_test.rb +92 -0
- data/test/unit/vagrant/box_collection_test.rb +56 -0
- data/test/unit/vagrant/box_test.rb +34 -0
- data/test/unit/vagrant/command/base_test.rb +150 -0
- data/test/unit/vagrant/config/base_test.rb +48 -0
- data/test/unit/vagrant/config/loader_test.rb +79 -0
- data/test/unit/vagrant/config/ssh_test.rb +17 -0
- data/test/unit/vagrant/config/top_test.rb +69 -0
- data/test/unit/vagrant/config/vm_test.rb +71 -0
- data/test/unit/vagrant/config_test.rb +27 -0
- data/test/unit/vagrant/data_store_test.rb +79 -0
- data/test/unit/vagrant/downloaders/base_test.rb +18 -0
- data/test/unit/vagrant/downloaders/file_test.rb +75 -0
- data/test/unit/vagrant/downloaders/http_test.rb +19 -0
- data/test/unit/vagrant/environment_test.rb +212 -0
- data/test/unit/vagrant/hosts_test.rb +36 -0
- data/test/unit/vagrant/registry_test.rb +74 -0
- data/test/unit/vagrant/util/ansi_escape_code_remover_test.rb +16 -0
- data/test/unit/vagrant/util/file_checksum_test.rb +23 -0
- data/test/unit/vagrant/util/hash_with_indifferent_access_test.rb +38 -0
- data/test/unit/vagrant/util/is_port_open_test.rb +53 -0
- data/test/unit/vagrant/util/line_endings_helper_test.rb +16 -0
- data/test/unit/vagrant/util/network_ip_test.rb +17 -0
- data/test/unit/vagrant/util/retryable_test.rb +106 -0
- data/test/unit/vagrant_test.rb +27 -0
- data/test/unit_legacy/locales/en.yml +8 -0
- data/test/unit_legacy/test_helper.rb +32 -0
- data/test/unit_legacy/vagrant/action/box/destroy_test.rb +18 -0
- data/test/unit_legacy/vagrant/action/box/download_test.rb +125 -0
- data/test/unit_legacy/vagrant/action/box/package_test.rb +25 -0
- data/test/unit_legacy/vagrant/action/box/unpackage_test.rb +84 -0
- data/test/unit_legacy/vagrant/action/box/verify_test.rb +30 -0
- data/test/unit_legacy/vagrant/action/env/set_test.rb +24 -0
- data/test/unit_legacy/vagrant/action/general/package_test.rb +268 -0
- data/test/unit_legacy/vagrant/action/general/validate_test.rb +31 -0
- data/test/unit_legacy/vagrant/action/vm/boot_test.rb +66 -0
- data/test/unit_legacy/vagrant/action/vm/check_accessible_test.rb +61 -0
- data/test/unit_legacy/vagrant/action/vm/check_box_test.rb +61 -0
- data/test/unit_legacy/vagrant/action/vm/check_guest_additions_test.rb +9 -0
- data/test/unit_legacy/vagrant/action/vm/clean_machine_folder_test.rb +84 -0
- data/test/unit_legacy/vagrant/action/vm/clear_forwarded_ports_test.rb +52 -0
- data/test/unit_legacy/vagrant/action/vm/clear_nfs_exports_test.rb +22 -0
- data/test/unit_legacy/vagrant/action/vm/clear_shared_folders_test.rb +40 -0
- data/test/unit_legacy/vagrant/action/vm/customize_test.rb +37 -0
- data/test/unit_legacy/vagrant/action/vm/destroy_test.rb +25 -0
- data/test/unit_legacy/vagrant/action/vm/destroy_unused_network_interfaces_test.rb +49 -0
- data/test/unit_legacy/vagrant/action/vm/discard_state_test.rb +45 -0
- data/test/unit_legacy/vagrant/action/vm/export_test.rb +107 -0
- data/test/unit_legacy/vagrant/action/vm/forward_ports_helpers_test.rb +77 -0
- data/test/unit_legacy/vagrant/action/vm/forward_ports_test.rb +197 -0
- data/test/unit_legacy/vagrant/action/vm/halt_test.rb +79 -0
- data/test/unit_legacy/vagrant/action/vm/host_name_test.rb +36 -0
- data/test/unit_legacy/vagrant/action/vm/import_test.rb +66 -0
- data/test/unit_legacy/vagrant/action/vm/match_mac_address_test.rb +40 -0
- data/test/unit_legacy/vagrant/action/vm/modify_test.rb +38 -0
- data/test/unit_legacy/vagrant/action/vm/network_test.rb +286 -0
- data/test/unit_legacy/vagrant/action/vm/nfs_helpers_test.rb +26 -0
- data/test/unit_legacy/vagrant/action/vm/nfs_test.rb +260 -0
- data/test/unit_legacy/vagrant/action/vm/package_test.rb +25 -0
- data/test/unit_legacy/vagrant/action/vm/package_vagrantfile_test.rb +46 -0
- data/test/unit_legacy/vagrant/action/vm/provision_test.rb +65 -0
- data/test/unit_legacy/vagrant/action/vm/provisioner_cleanup_test.rb +56 -0
- data/test/unit_legacy/vagrant/action/vm/resume_test.rb +35 -0
- data/test/unit_legacy/vagrant/action/vm/share_folders_test.rb +144 -0
- data/test/unit_legacy/vagrant/action/vm/suspend_test.rb +35 -0
- data/test/unit_legacy/vagrant/action_test.rb +89 -0
- data/test/unit_legacy/vagrant/box_collection_test.rb +45 -0
- data/test/unit_legacy/vagrant/box_test.rb +74 -0
- data/test/unit_legacy/vagrant/cli_test.rb +35 -0
- data/test/unit_legacy/vagrant/command/base_test.rb +23 -0
- data/test/unit_legacy/vagrant/command/group_base_test.rb +15 -0
- data/test/unit_legacy/vagrant/command/helpers_test.rb +88 -0
- data/test/unit_legacy/vagrant/command/init_test.rb +10 -0
- data/test/unit_legacy/vagrant/command/package_test.rb +27 -0
- data/test/unit_legacy/vagrant/config/base_test.rb +52 -0
- data/test/unit_legacy/vagrant/config/error_recorder_test.rb +18 -0
- data/test/unit_legacy/vagrant/config/ssh_test.rb +12 -0
- data/test/unit_legacy/vagrant/config/vagrant_test.rb +35 -0
- data/test/unit_legacy/vagrant/config/vm/provisioner_test.rb +92 -0
- data/test/unit_legacy/vagrant/config/vm_test.rb +47 -0
- data/test/unit_legacy/vagrant/config_test.rb +148 -0
- data/test/unit_legacy/vagrant/downloaders/http_test.rb +93 -0
- data/test/unit_legacy/vagrant/environment_test.rb +539 -0
- data/test/unit_legacy/vagrant/errors_test.rb +42 -0
- data/test/unit_legacy/vagrant/hosts/base_test.rb +46 -0
- data/test/unit_legacy/vagrant/hosts/bsd_test.rb +53 -0
- data/test/unit_legacy/vagrant/hosts/linux_test.rb +54 -0
- data/test/unit_legacy/vagrant/plugin_test.rb +9 -0
- data/test/unit_legacy/vagrant/provisioners/base_test.rb +63 -0
- data/test/unit_legacy/vagrant/provisioners/chef_client_test.rb +190 -0
- data/test/unit_legacy/vagrant/provisioners/chef_solo_test.rb +115 -0
- data/test/unit_legacy/vagrant/provisioners/chef_test.rb +209 -0
- data/test/unit_legacy/vagrant/provisioners/puppet_server_test.rb +68 -0
- data/test/unit_legacy/vagrant/provisioners/puppet_test.rb +182 -0
- data/test/unit_legacy/vagrant/provisioners/shell_test.rb +79 -0
- data/test/unit_legacy/vagrant/ssh/session_test.rb +40 -0
- data/test/unit_legacy/vagrant/ssh_test.rb +304 -0
- data/test/unit_legacy/vagrant/systems/base_test.rb +18 -0
- data/test/unit_legacy/vagrant/systems/linux_test.rb +104 -0
- data/test/unit_legacy/vagrant/util/busy_test.rb +106 -0
- data/test/unit_legacy/vagrant/util/counter_test.rb +29 -0
- data/test/unit_legacy/vagrant/util/platform_test.rb +18 -0
- data/test/unit_legacy/vagrant/util/stacked_proc_runner_test.rb +43 -0
- data/test/unit_legacy/vagrant/util/template_renderer_test.rb +145 -0
- data/test/unit_legacy/vagrant/vm_test.rb +300 -0
- data/vagrant.gemspec +39 -0
- data/vendor/cache/contest-0.1.3.gem +0 -0
- data/vendor/cache/diff-lcs-1.1.3.gem +0 -0
- data/vendor/cache/erubis-2.7.0.gem +0 -0
- data/vendor/cache/i18n-0.6.1.gem +0 -0
- data/vendor/cache/json-1.5.4.gem +0 -0
- data/vendor/cache/log4r-1.1.10.gem +0 -0
- data/vendor/cache/metaclass-0.0.1.gem +0 -0
- data/vendor/cache/minitest-2.5.1.gem +0 -0
- data/vendor/cache/mocha-0.13.1.gem +0 -0
- data/vendor/cache/rake-10.0.2.gem +0 -0
- data/vendor/cache/rspec-core-2.8.0.gem +0 -0
- data/vendor/cache/rspec-expectations-2.8.0.gem +0 -0
- data/vendor/cache/rspec-mocks-2.8.0.gem +0 -0
- metadata +676 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
require 'ostruct'
|
|
2
|
+
require 'erubis'
|
|
3
|
+
|
|
4
|
+
module Vagrant
|
|
5
|
+
module Util
|
|
6
|
+
# This class is used to render the ERB templates in the
|
|
7
|
+
# `GEM_ROOT/templates` directory.
|
|
8
|
+
class TemplateRenderer < OpenStruct
|
|
9
|
+
class << self
|
|
10
|
+
# Render a given template and return the result. This method optionally
|
|
11
|
+
# takes a block which will be passed the renderer prior to rendering, which
|
|
12
|
+
# allows the caller to set any view variables within the renderer itself.
|
|
13
|
+
#
|
|
14
|
+
# @return [String] Rendered template
|
|
15
|
+
def render(*args)
|
|
16
|
+
render_with(:render, *args)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Render a given string and return the result. This method optionally
|
|
20
|
+
# takes a block which will be passed the renderer prior to rendering, which
|
|
21
|
+
# allows the caller to set any view variables within the renderer itself.
|
|
22
|
+
#
|
|
23
|
+
# @param [String] template The template data string.
|
|
24
|
+
# @return [String] Rendered template
|
|
25
|
+
def render_string(*args)
|
|
26
|
+
render_with(:render_string, *args)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Method used internally to DRY out the other renderers. This method
|
|
30
|
+
# creates and sets up the renderer before calling a specified method on it.
|
|
31
|
+
def render_with(method, template, data={})
|
|
32
|
+
renderer = new(template, data)
|
|
33
|
+
yield renderer if block_given?
|
|
34
|
+
renderer.send(method.to_sym)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def initialize(template, data = {})
|
|
39
|
+
super()
|
|
40
|
+
|
|
41
|
+
data[:template] = template
|
|
42
|
+
data.each do |key, value|
|
|
43
|
+
send("#{key}=", value)
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Renders the template using the class intance as the binding. Because the
|
|
48
|
+
# renderer inherits from `OpenStruct`, additional view variables can be
|
|
49
|
+
# added like normal accessors.
|
|
50
|
+
#
|
|
51
|
+
# @return [String]
|
|
52
|
+
def render
|
|
53
|
+
# TODO: Seems like a pretty dirty way to do this. Perhaps refactor this
|
|
54
|
+
old_template = template
|
|
55
|
+
result = nil
|
|
56
|
+
File.open(full_template_path, 'r') do |f|
|
|
57
|
+
self.template = f.read
|
|
58
|
+
result = render_string
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
result
|
|
62
|
+
ensure
|
|
63
|
+
self.template = old_template
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Renders a template, handling the template as a string, but otherwise
|
|
67
|
+
# acting the same way as {#render}.
|
|
68
|
+
#
|
|
69
|
+
# @return [String]
|
|
70
|
+
def render_string
|
|
71
|
+
Erubis::Eruby.new(template, :trim => true).result(binding)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Returns the full path to the template, taking into accoun the gem directory
|
|
75
|
+
# and adding the `.erb` extension to the end.
|
|
76
|
+
#
|
|
77
|
+
# @return [String]
|
|
78
|
+
def full_template_path
|
|
79
|
+
Vagrant.source_root.join('templates', "#{template}.erb").to_s.squeeze("/")
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
module Vagrant
|
|
2
|
+
# This will always be up to date with the current version of Vagrant,
|
|
3
|
+
# since it is used to generate the gemspec and is also the source of
|
|
4
|
+
# the version for `vagrant -v`
|
|
5
|
+
Version = File.read(File.expand_path('../../../VERSION', __FILE__)).strip
|
|
6
|
+
VERSION = Version
|
|
7
|
+
end
|
data/lib/vagrant/vm.rb
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
require 'log4r'
|
|
2
|
+
|
|
3
|
+
module Vagrant
|
|
4
|
+
class VM
|
|
5
|
+
include Vagrant::Util
|
|
6
|
+
|
|
7
|
+
attr_reader :uuid
|
|
8
|
+
attr_reader :env
|
|
9
|
+
attr_reader :name
|
|
10
|
+
attr_reader :vm
|
|
11
|
+
attr_reader :box
|
|
12
|
+
attr_reader :config
|
|
13
|
+
attr_reader :driver
|
|
14
|
+
|
|
15
|
+
def initialize(name, env, config, opts=nil)
|
|
16
|
+
@logger = Log4r::Logger.new("vagrant::vm")
|
|
17
|
+
|
|
18
|
+
@name = name
|
|
19
|
+
@vm = nil
|
|
20
|
+
@env = env
|
|
21
|
+
@config = config
|
|
22
|
+
@box = env.boxes.find(config.vm.box)
|
|
23
|
+
|
|
24
|
+
opts ||= {}
|
|
25
|
+
if opts[:base]
|
|
26
|
+
# The name is the ID we use.
|
|
27
|
+
@uuid = name
|
|
28
|
+
else
|
|
29
|
+
# Load the UUID if its saved.
|
|
30
|
+
active = env.local_data[:active] || {}
|
|
31
|
+
@uuid = active[@name.to_s]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Reload ourselves to get the state
|
|
35
|
+
reload!
|
|
36
|
+
|
|
37
|
+
# Load the associated guest.
|
|
38
|
+
load_guest!
|
|
39
|
+
@loaded_guest_distro = false
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Loads the guest associated with the VM. The guest class is
|
|
43
|
+
# responsible for OS-specific functionality. More information
|
|
44
|
+
# can be found by reading the documentation on {Vagrant::Guest::Base}.
|
|
45
|
+
#
|
|
46
|
+
# **This method should never be called manually.**
|
|
47
|
+
def load_guest!(guest=nil)
|
|
48
|
+
guest ||= config.vm.guest
|
|
49
|
+
@logger.info("Loading guest: #{guest}")
|
|
50
|
+
|
|
51
|
+
if guest.is_a?(Class)
|
|
52
|
+
raise Errors::VMGuestError, :_key => :invalid_class, :guest => guest.to_s if !(guest <= Guest::Base)
|
|
53
|
+
@guest = guest.new(self)
|
|
54
|
+
elsif guest.is_a?(Symbol)
|
|
55
|
+
guest_klass = Vagrant.guests.get(guest)
|
|
56
|
+
raise Errors::VMGuestError, :_key => :unknown_type, :guest => guest.to_s if !guest_klass
|
|
57
|
+
@guest = guest_klass.new(self)
|
|
58
|
+
else
|
|
59
|
+
raise Errors::VMGuestError, :unspecified
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Returns a channel object to communicate with the virtual
|
|
64
|
+
# machine.
|
|
65
|
+
def channel
|
|
66
|
+
@channel ||= Communication::SSH.new(self)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Returns the guest for this VM, loading the distro of the system if
|
|
70
|
+
# we can.
|
|
71
|
+
def guest
|
|
72
|
+
if !@loaded_guest_distro && state == :running
|
|
73
|
+
# Load the guest distro for the first time
|
|
74
|
+
result = @guest.distro_dispatch
|
|
75
|
+
load_guest!(result)
|
|
76
|
+
@loaded_guest_distro = true
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
@guest
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Access the {Vagrant::SSH} object associated with this VM, which
|
|
83
|
+
# is used to get SSH credentials with the virtual machine.
|
|
84
|
+
def ssh
|
|
85
|
+
@ssh ||= SSH.new(self)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Returns the state of the VM as a symbol.
|
|
89
|
+
#
|
|
90
|
+
# @return [Symbol]
|
|
91
|
+
def state
|
|
92
|
+
return :not_created if !@uuid
|
|
93
|
+
state = @driver.read_state
|
|
94
|
+
return :not_created if !state
|
|
95
|
+
return state
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Returns a boolean true if the VM has been created, otherwise
|
|
99
|
+
# returns false.
|
|
100
|
+
#
|
|
101
|
+
# @return [Boolean]
|
|
102
|
+
def created?
|
|
103
|
+
state != :not_created
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# Sets the currently active VM for this VM. If the VM is a valid,
|
|
107
|
+
# created virtual machine, then it will also update the local data
|
|
108
|
+
# to persist the VM. Otherwise, it will remove itself from the
|
|
109
|
+
# local data (if it exists).
|
|
110
|
+
def uuid=(value)
|
|
111
|
+
env.local_data[:active] ||= {}
|
|
112
|
+
if value
|
|
113
|
+
env.local_data[:active][name.to_s] = value
|
|
114
|
+
else
|
|
115
|
+
env.local_data[:active].delete(name.to_s)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# Commit the local data so that the next time vagrant is initialized,
|
|
119
|
+
# it realizes the VM exists
|
|
120
|
+
env.local_data.commit
|
|
121
|
+
|
|
122
|
+
# Store the uuid and reload the instance
|
|
123
|
+
@uuid = value
|
|
124
|
+
reload!
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def reload!
|
|
128
|
+
begin
|
|
129
|
+
@driver = Driver::VirtualBox.new(@uuid)
|
|
130
|
+
rescue Driver::VirtualBox::VMNotFound
|
|
131
|
+
# Clear the UUID since this VM doesn't exist.
|
|
132
|
+
@uuid = nil
|
|
133
|
+
|
|
134
|
+
# Reset the driver. This shouldn't raise a VMNotFound since we won't
|
|
135
|
+
# feed it a UUID.
|
|
136
|
+
@driver = Driver::VirtualBox.new
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def package(options=nil)
|
|
141
|
+
run_action(:package, { "validate" => false }.merge(options || {}))
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def up(options=nil)
|
|
145
|
+
run_action(:up, options)
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def start(options=nil)
|
|
149
|
+
return if state == :running
|
|
150
|
+
return resume if state == :saved
|
|
151
|
+
|
|
152
|
+
run_action(:start, options)
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
def halt(options=nil)
|
|
156
|
+
run_action(:halt, options)
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
def reload(options=nil)
|
|
160
|
+
run_action(:reload, options)
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
def provision
|
|
164
|
+
run_action(:provision)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def destroy
|
|
168
|
+
run_action(:destroy)
|
|
169
|
+
end
|
|
170
|
+
|
|
171
|
+
def suspend
|
|
172
|
+
run_action(:suspend)
|
|
173
|
+
end
|
|
174
|
+
|
|
175
|
+
def resume
|
|
176
|
+
run_action(:resume)
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def ui
|
|
180
|
+
return @_ui if defined?(@_ui)
|
|
181
|
+
@_ui = @env.ui.dup
|
|
182
|
+
@_ui.resource = @name
|
|
183
|
+
@_ui
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def run_action(name, options=nil)
|
|
187
|
+
options = {
|
|
188
|
+
:vm => self,
|
|
189
|
+
:ui => ui
|
|
190
|
+
}.merge(options || {})
|
|
191
|
+
|
|
192
|
+
env.action_runner.run(name, options)
|
|
193
|
+
end
|
|
194
|
+
end
|
|
195
|
+
end
|
data/libexec/build
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
#/ NAME
|
|
4
|
+
#/ build-gem -- upload the latest (timestamp) rubygem to rubygems.org
|
|
5
|
+
#/
|
|
6
|
+
#/ SYNOPSIS
|
|
7
|
+
#/ build gem -n gem_name
|
|
8
|
+
|
|
9
|
+
# figure out the project root under which bin, lib live
|
|
10
|
+
shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
|
|
11
|
+
|
|
12
|
+
# load a jason bourne library
|
|
13
|
+
source "$shome/bin/_treadstone"
|
|
14
|
+
|
|
15
|
+
# define command line options:
|
|
16
|
+
DEFINE_string 'name' "$(basename "$shome")" 'name of gem' 'n'
|
|
17
|
+
|
|
18
|
+
# entry point
|
|
19
|
+
function main {
|
|
20
|
+
local pth_gemspec="$shome/$FLAGS_name.gemspec"
|
|
21
|
+
if [[ ! -e "$pth_gemspec" ]]; then
|
|
22
|
+
logger_fatal "could not find gemspec $pth_gemspec"
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
cd "$shome"
|
|
27
|
+
gem build "$pth_gemspec"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
require sub "$BASH_SOURCE" "$@"
|
data/libexec/build-gem
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
#/ NAME
|
|
4
|
+
#/ build-gem -- upload the latest (timestamp) rubygem to rubygems.org
|
|
5
|
+
#/
|
|
6
|
+
#/ SYNOPSIS
|
|
7
|
+
#/ build gem -n gem_name
|
|
8
|
+
|
|
9
|
+
# figure out the project root under which bin, lib live
|
|
10
|
+
shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
|
|
11
|
+
|
|
12
|
+
# load a jason bourne library
|
|
13
|
+
source "$shome/bin/_treadstone"
|
|
14
|
+
|
|
15
|
+
# define command line options:
|
|
16
|
+
DEFINE_string 'name' "$(basename "$shome")" 'name of gem' 'n'
|
|
17
|
+
|
|
18
|
+
# entry point
|
|
19
|
+
function main {
|
|
20
|
+
local pth_gemspec="$shome/$FLAGS_name.gemspec"
|
|
21
|
+
if [[ ! -e "$pth_gemspec" ]]; then
|
|
22
|
+
logger_fatal "could not find gemspec $pth_gemspec"
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
cd "$shome"
|
|
27
|
+
gem build "$pth_gemspec"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
require sub "$BASH_SOURCE" "$@"
|
data/libexec/bump
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
#/ NAME
|
|
4
|
+
#/ bump -- increments a semver in a file or in git tags
|
|
5
|
+
#/
|
|
6
|
+
#/ SYNOPSIS
|
|
7
|
+
#/ bump [major|minor|patch]
|
|
8
|
+
#/ bump 1.2.3
|
|
9
|
+
#/ bump
|
|
10
|
+
#/ without arguments is equivalent to 'bump patch'
|
|
11
|
+
|
|
12
|
+
# figure out the project root under which bin, lib live
|
|
13
|
+
shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
|
|
14
|
+
|
|
15
|
+
# load a jason bourne library
|
|
16
|
+
source "$shome/bin/_treadstone"
|
|
17
|
+
|
|
18
|
+
# parse the command-line
|
|
19
|
+
DEFINE_boolean 'dirty' "$FLAGS_FALSE" 'force bumping in unclean work area' 'f'
|
|
20
|
+
|
|
21
|
+
# entry point
|
|
22
|
+
function main {
|
|
23
|
+
require 'bump'
|
|
24
|
+
|
|
25
|
+
if [[ "$#" = 0 ]]; then
|
|
26
|
+
set -- patch
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
bump_version "$FLAGS_dirty" "$@"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
require sub "$BASH_SOURCE" "$@"
|
data/libexec/edit-gem
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
#/ NAME
|
|
4
|
+
#/ edit-gem -- set environment to hint to Gemfile to use a local gemspec
|
|
5
|
+
#/
|
|
6
|
+
#/ SYNOPSIS
|
|
7
|
+
#/ edit gem <name> [location]
|
|
8
|
+
#/ edit gem -r <names>
|
|
9
|
+
#/ edit gem -R
|
|
10
|
+
|
|
11
|
+
# figure out the project root under which bin, lib live
|
|
12
|
+
shome="$(cd -P -- "$(dirname -- "$BASH_SOURCE")/.." && pwd -P)"
|
|
13
|
+
|
|
14
|
+
# load a jason bourne library
|
|
15
|
+
source "$shome/bin/_treadstone"
|
|
16
|
+
|
|
17
|
+
# define command line options:
|
|
18
|
+
DEFINE_boolean "update" "$FLAGS_FALSE" "finish editing a local gem and updates project" "u"
|
|
19
|
+
DEFINE_boolean "reset" "$FLAGS_FALSE" "reset gem to remote" "r"
|
|
20
|
+
DEFINE_boolean "resetall" "$FLAGS_FALSE" "reset all gems to remote" "R"
|
|
21
|
+
|
|
22
|
+
# entry point
|
|
23
|
+
function main {
|
|
24
|
+
if [[ "$FLAGS_resetall" = "$FLAGS_TRUE" ]]; then
|
|
25
|
+
set +f
|
|
26
|
+
rm -f $shome/.local/*
|
|
27
|
+
set -f
|
|
28
|
+
bundle --local --quiet && bundle check > /dev/null
|
|
29
|
+
git diff --no-ext-diff Gemfile.lock vendor/cache
|
|
30
|
+
elif [[ "$FLAGS_reset" = "$FLAGS_TRUE" ]]; then
|
|
31
|
+
local nm_gem
|
|
32
|
+
for nm_gem in "$@"; do
|
|
33
|
+
rm -f "$shome/.local/$nm_gem"
|
|
34
|
+
done
|
|
35
|
+
|
|
36
|
+
bundle --local --quiet && bundle check > /dev/null
|
|
37
|
+
|
|
38
|
+
git diff --no-ext-diff Gemfile.lock vendor/cache
|
|
39
|
+
elif [[ "$FLAGS_update" = "$FLAGS_TRUE" ]]; then
|
|
40
|
+
local nm_gem
|
|
41
|
+
for nm_gem in "$@"; do
|
|
42
|
+
echo -n > "$shome/.local/$nm_gem"
|
|
43
|
+
done
|
|
44
|
+
|
|
45
|
+
bundle update "$@"
|
|
46
|
+
|
|
47
|
+
for nm_gem in "$@"; do
|
|
48
|
+
rm -f "$shome/.local/$nm_gem"
|
|
49
|
+
done
|
|
50
|
+
bundle --local --quiet && bundle check > /dev/null
|
|
51
|
+
|
|
52
|
+
git add Gemfile.lock vendor/cache
|
|
53
|
+
git add -u vendor/cache
|
|
54
|
+
git diff --no-ext-diff --cached Gemfile.lock vendor/cache
|
|
55
|
+
else
|
|
56
|
+
local nm_gem="$1"; shift
|
|
57
|
+
|
|
58
|
+
local pth_gem
|
|
59
|
+
if [[ "$#" = 0 ]]; then
|
|
60
|
+
pth_gem="gems/$nm_gem"
|
|
61
|
+
else
|
|
62
|
+
pth_gem="$1"; shift
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
if [[ ! -d "$pth_gem" ]]; then
|
|
66
|
+
logger_fatal "cannot find local gem directoy at $pth_gem"
|
|
67
|
+
exit 1
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
pth_gem="$(cd -P -- "$pth_gem" && pwd -P)"
|
|
71
|
+
|
|
72
|
+
echo "enabling local gem development on ${nm_gem} at ${pth_gem}"
|
|
73
|
+
mkdir -p "$shome/.local"
|
|
74
|
+
echo "$pth_gem" > "$shome/.local/$nm_gem"
|
|
75
|
+
|
|
76
|
+
bundle --local --quiet && bundle check > /dev/null
|
|
77
|
+
git diff --no-ext-diff Gemfile.lock vendor/cache
|
|
78
|
+
fi
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
require sub "$BASH_SOURCE" "$@"
|