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