mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-07-21 06:28:06 +02:00
121 lines
3.1 KiB
Bash
121 lines
3.1 KiB
Bash
# Copyright 1999-2024 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
USE_RUBY="ruby31 ruby32 ruby33"
|
|
|
|
RUBY_FAKEGEM_RECIPE_TEST="rspec3"
|
|
|
|
RUBY_FAKEGEM_EXTRADOC="CHANGELOG.adoc LICENSE.txt README.adoc"
|
|
|
|
RUBY_FAKEGEM_GEMSPEC="${PN}.gemspec"
|
|
|
|
inherit ruby-fakegem
|
|
|
|
DESCRIPTION="A set of Asciidoctor extensions that enable you to add diagrams"
|
|
HOMEPAGE="https://github.com/asciidoctor/asciidoctor-diagram"
|
|
SRC_URI="https://github.com/asciidoctor/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
|
|
|
|
LICENSE="MIT"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64"
|
|
|
|
# Supported backends dictionary: <backend-name> <dependencies> <removal-function>
|
|
# backend-name: The name of the USE flag, a gem spec file in ./spec, a
|
|
# directory in ./lib/asciidoctor-diagram/, and a require directive in
|
|
# ./lib/asciidoctor.rb which will be removed if the former is unset.
|
|
# dependencies: Dependencies for RDEPEND if the USE flag is set, and for
|
|
# DEPEND if the "test" USE flag is set.
|
|
# removal-function: Additional commands to evaluate, if the USE flag is unset.
|
|
#
|
|
# NB: Do not implicitly use functions following a naming scheme instead
|
|
# of an explicit <removal-function> to prevent accidental or malicious
|
|
# injection from functions exported in the parent environment.
|
|
backend_dict_stride=3
|
|
backends=(
|
|
"barcode" "dev-ruby/rqrcode dev-ruby/barby" ""
|
|
"ditaa" "media-gfx/ditaa" "remove_ditaa"
|
|
"gnuplot" "sci-visualization/gnuplot" ""
|
|
"graphviz" "media-gfx/graphviz" ""
|
|
"lilypond" "media-sound/lilypond" ""
|
|
"meme" "media-gfx/imagemagick[png]" ""
|
|
"mscgen" "media-gfx/mscgen[png]" ""
|
|
"plantuml" "media-gfx/plantuml" "remove_plantuml"
|
|
"tikz" "dev-tex/pgf" ""
|
|
)
|
|
|
|
remove_plantuml() {
|
|
rm -f "spec/salt.rb"
|
|
sed -i "/\\/salt'/d" "lib/asciidoctor-diagram.rb"
|
|
sed -i "/plantuml/d" "asciidoctor-diagram.gemspec"
|
|
}
|
|
|
|
remove_ditaa() {
|
|
sed -i "/ditaa/d" "asciidoctor-diagram.gemspec"
|
|
}
|
|
|
|
IUSE=""
|
|
DEPEND+="test? ("
|
|
|
|
i=0
|
|
while (( i < ${#backends[@]} ))
|
|
do
|
|
backend="${backends[i]}"
|
|
deps="${backends[i+1]}"
|
|
|
|
IUSE+=" $backend"
|
|
RDEPEND+=" $backend? ( $deps )"
|
|
DEPEND+=" $deps"
|
|
|
|
((i+=backend_dict_stride))
|
|
done
|
|
|
|
DEPEND+=" )"
|
|
|
|
ruby_add_rdepend ">=dev-ruby/asciidoctor-1.5.7 <dev-ruby/asciidoctor-3 dev-ruby/rexml"
|
|
|
|
all_ruby_prepare() {
|
|
rm Gemfile || die
|
|
sed -e '/c.formatter/ s:^:#:' \
|
|
-e '/logger.*DEBUG/ s:^:#:' \
|
|
-i spec/test_helper_methods.rb || die
|
|
|
|
# Delete everything related to unsupported backends. Obtain list of backends from spec/
|
|
for spec in spec/*_spec.rb
|
|
do
|
|
backend="${spec##spec/}"
|
|
backend="${backend%%_spec.rb}"
|
|
|
|
backend_index=0
|
|
|
|
get_backend_index() {
|
|
local i=0
|
|
while (( i < ${#backends[@]} ))
|
|
do
|
|
if [[ "${backends[i]}" == "$backend" ]]
|
|
then
|
|
echo "$i"
|
|
return 1
|
|
fi
|
|
((i+=backend_dict_stride))
|
|
done
|
|
}
|
|
|
|
if backend_index="$(get_backend_index)" || ! use "$backend"
|
|
then
|
|
rm -f "spec/${backend}_spec.rb"
|
|
rm -Rf "lib/asciidoctor-diagram/"{"$backend.rb","$backend"}
|
|
sed -i "/\\/$backend'/d" "lib/asciidoctor-diagram.rb"
|
|
removal="${backends[backend_index+2]}"
|
|
if [[ "$removal" ]]
|
|
then
|
|
"$removal"
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|
|
all_ruby_install() {
|
|
all_fakegem_install
|
|
}
|