]> git.pld-linux.org Git - packages/vagrant.git/commitdiff
add vagrant wrapper to setup gem env properly
authorElan Ruusamäe <glen@delfi.ee>
Wed, 17 Dec 2014 14:12:38 +0000 (16:12 +0200)
committerElan Ruusamäe <glen@delfi.ee>
Wed, 17 Dec 2014 14:12:38 +0000 (16:12 +0200)
vagrant.sh [new file with mode: 0755]
vagrant.spec

diff --git a/vagrant.sh b/vagrant.sh
new file mode 100755 (executable)
index 0000000..839de53
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/sh
+#
+# This is a wrapper to properly execute Vagrant so that it sees system gems and
+# merges with it's own gems.
+#
+# This sets up proper environmental variables so that everything loads and
+# compiles to proper directories.
+
+# Set the path to the Ruby executable
+RUBY_EXECUTABLE="/usr/bin/ruby"
+
+GEM_PATH=$($RUBY_EXECUTABLE -r rubygems -e 'puts Gem.respond_to?(:default_dirs) ? Gem.default_dirs[:system][:gem_dir] : Gem.path.first')
+export GEM_PATH
+
+# Export gem paths so it can find vagrant own gem
+export GEM_HOME="${GEM_PATH}"
+
+# Export an enviromental variable to say we're in a Vagrant
+# installer created environment.
+export VAGRANT_INSTALLER_ENV=1
+
+# Unset any RUBYOPT and RUBYLIB, we don't want these bleeding into our
+# runtime.
+unset RUBYOPT
+unset RUBYLIB
+
+# Find the Vagrant executable
+for needle in "${GEM_PATH}/gems/vagrant-"*; do
+       if [ -f "${needle}/lib/vagrant/pre-rubygems.rb" ]; then
+               VAGRANT_GEM_PATH="${needle}"
+       fi
+done
+
+VAGRANT_EXECUTABLE="${VAGRANT_GEM_PATH}/bin/vagrant"
+VAGRANT_LAUNCHER="${VAGRANT_GEM_PATH}/lib/vagrant/pre-rubygems.rb"
+
+# Export the VAGRANT_EXECUTABLE so that pre-rubygems can optimize a bit
+export VAGRANT_EXECUTABLE
+
+# Call the actual Vagrant bin with our arguments
+exec "${RUBY_EXECUTABLE}" "${VAGRANT_LAUNCHER}" "$@"
index a86c65e71e8630a1d82e1ab0cc302cbaad0d421a..70b1938f36e96192ebcd1d8bb8d9b23c320e89a5 100644 (file)
@@ -4,12 +4,12 @@ Summary:      Provisioning and deployment of virtual instances
 Name:          vagrant
 Version:       1.7.1
 # NOTE: test that it actually works before doing rel "1"
-Release:       0.3
+Release:       0.7
 License:       MIT
 Group:         Applications/Emulators
 Source0:       https://github.com/mitchellh/vagrant/archive/v%{version}/%{name}-%{version}.tar.gz
 # Source0-md5: 6bfb1440145f943e7b683ac99d06adec
-#Source100:    runtime-broken
+Source1:       %{name}.sh
 Patch0:                source_root.patch
 Patch1:                rubygems.patch
 Patch2:                no-warning.patch
@@ -114,7 +114,7 @@ Ruby documentation for %{gem_name}
 
 %prep
 %setup -q
-%patch0 -p1
+#%patch0 -p1
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
@@ -139,7 +139,7 @@ rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{ruby_gemdir}/gems/%{name}-%{version},%{ruby_specdir},%{_bindir}}
 cp -a lib bin keys plugins templates $RPM_BUILD_ROOT%{ruby_gemdir}/gems/%{name}-%{version}
 cp -p %{name}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
-ln -s %{ruby_gemdir}/gems/%{name}-%{version}/bin/%{name} $RPM_BUILD_ROOT%{_bindir}
+install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name}
 
 install -d $RPM_BUILD_ROOT%{bash_compdir}
 cp -p contrib/bash/completion.sh $RPM_BUILD_ROOT%{bash_compdir}/%{name}
This page took 0.194494 seconds and 4 git commands to generate.