854f8b4
%vagrant_embedded_dir %{_datadir}/%{name}
854f8b4
%vagrant_dir %{vagrant_embedded_dir}/gems/gems/%{name}-%{version}
e30c952
a0e92dc
# Common locations for Vagrant plugin gems
854f8b4
%vagrant_plugin_dir %{vagrant_embedded_dir}/gems
a0e92dc
%vagrant_plugin_instdir %{vagrant_plugin_dir}/gems/%{vagrant_plugin_name}-%{version}
96d7878
# We are not prepared for platform dependent vagrant plugins yet.
a0e92dc
# %%vagrant_plugin_extdir %%{_libdir}/%%{name}/gems/ruby/%%{vagrant_plugin_name}-%%{version}
a0e92dc
%vagrant_plugin_libdir %{vagrant_plugin_instdir}/lib
a0e92dc
%vagrant_plugin_cache %{vagrant_plugin_dir}/cache/%{vagrant_plugin_name}-%{version}.gem
a0e92dc
%vagrant_plugin_spec %{vagrant_plugin_dir}/specifications/%{vagrant_plugin_name}-%{version}.gemspec
a0e92dc
%vagrant_plugin_docdir %{vagrant_plugin_dir}/doc/%{vagrant_plugin_name}-%{version}
126c957
854f8b4
# Plugin configuration file location.
854f8b4
%vagrant_plugin_conf_dir %{_sharedstatedir}/%{name}
854f8b4
%vagrant_plugin_conf %{vagrant_plugin_conf_dir}/plugins.json
854f8b4
126c957
# Install gem into appropriate directory.
a0e92dc
# -n<vagrant_plugin_file>      Overrides gem file name for installation.
126c957
# -d<install_dir>   Set installation directory.
a0e92dc
%vagrant_plugin_install(d:n:) \
a0e92dc
mkdir -p %{-d*}%{!?-d:.%{vagrant_plugin_dir}} \
126c957
\
126c957
CONFIGURE_ARGS="--with-cflags='%{optflags}' $CONFIGURE_ARGS" \\\
126c957
gem install \\\
126c957
        -V \\\
126c957
        --local \\\
33745c5
        --install-dir %{-d*}%{!?-d:.%{vagrant_plugin_dir}} \\\
33745c5
        --bindir .%{_bindir} \\\
33745c5
        --ignore-dependencies \\\
126c957
        --force \\\
126c957
        --document=ri,rdoc \\\
126c957
        --backtrace \\\
a0e92dc
        %{-n*}%{!?-n:%{vagrant_plugin_name}-%{version}.gem} \
126c957
%{nil}
e30c952
854f8b4
# Macros to (un)register Vagrant gem.
e30c952
%vagrant_plugin_register() \
e30c952
%{_bindir}/ruby -e ' \\\
e30c952
$LOAD_PATH.unshift "%{vagrant_dir}/lib"; \\\
854f8b4
begin; \\\
854f8b4
  require "vagrant/plugin/manager"; \\\
854f8b4
  Vagrant::Plugin::StateFile.new(Pathname.new(File.expand_path "%{vagrant_plugin_conf}")).add_plugin "%1"; \\\
854f8b4
rescue LoadError => e; \\\
854f8b4
  puts "Plugin register error: #{e}"; \\\
854f8b4
end; '\
e30c952
%{nil}
e30c952
e30c952
%vagrant_plugin_unregister() \
e30c952
%{_bindir}/ruby -e ' \\\
e30c952
$LOAD_PATH.unshift "%{vagrant_dir}/lib"; \\\
854f8b4
begin; \\\
854f8b4
  require "vagrant/plugin/manager"; \\\
854f8b4
  Vagrant::Plugin::StateFile.new(Pathname.new(File.expand_path "%{vagrant_plugin_conf}")).remove_plugin "%1"; \\\
854f8b4
rescue LoadError => e; \\\
854f8b4
  puts "Plugin unregister error: #{e}"; \\\
854f8b4
end; '\
e30c952
%{nil}