e30c952
%vagrant_dir %{_datadir}/%{name}
e30c952
e30c952
%vagrant_plugin_conf_dir %{_sharedstatedir}/%{name}
e30c952
%vagrant_plugin_conf %{vagrant_plugin_conf_dir}/plugins.json
e30c952
a0e92dc
# Common locations for Vagrant plugin gems
a0e92dc
%vagrant_plugin_dir %{vagrant_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
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 \\\
9c79a2b
        --build-root %{-d*}%{!?-d:.} \\\
126c957
        --force \\\
126c957
        --document=ri,rdoc \\\
126c957
        --backtrace \\\
a0e92dc
        %{-n*}%{!?-n:%{vagrant_plugin_name}-%{version}.gem} \
126c957
%{nil}
e30c952
e30c952
# Macros to (un)register Vagrant gem
e30c952
%vagrant_plugin_register() \
e30c952
%{_bindir}/ruby -e ' \\\
e30c952
$LOAD_PATH.unshift "%{vagrant_dir}/lib"; \\\
e30c952
require "vagrant/plugin/manager"; \\\
e30c952
Vagrant::Plugin::StateFile.new(Pathname.new(File.expand_path "%{vagrant_plugin_conf}")).add_plugin "%1";' \
e30c952
%{nil}
e30c952
e30c952
%vagrant_plugin_unregister() \
e30c952
%{_bindir}/ruby -e ' \\\
e30c952
$LOAD_PATH.unshift "%{vagrant_dir}/lib"; \\\
e30c952
require "vagrant/plugin/manager"; \\\
e30c952
Vagrant::Plugin::StateFile.new(Pathname.new(File.expand_path "%{vagrant_plugin_conf}")).remove_plugin "%1";' \
e30c952
%{nil}