102 lines
1.9 KiB
Bash
102 lines
1.9 KiB
Bash
|
||
package=service
|
||
version=0.1.0
|
||
|
||
variables+=(
|
||
LIBEXECDIR '$(PREFIX)/libexec'
|
||
SYSCONFDIR '/etc'
|
||
VARSTATEDIR '/var'
|
||
DATADIR '/srv'
|
||
)
|
||
|
||
targets=(service status gen-config get-port)
|
||
|
||
for target in service status gen-config get-port; do
|
||
type[$target]=crystal
|
||
sources[$target]=src/${target}.cr
|
||
depends[$target]=src/config.cr
|
||
done
|
||
|
||
targets+=(src/config.cr)
|
||
type[src/config.cr]=script
|
||
sources[src/config.cr]=src/config.cr.in
|
||
install[src/config.cr]=false
|
||
auto[src/config.cr]=true # Don’t display it in `make help`.
|
||
chmod[src/config.cr]=0644
|
||
|
||
for file in services/*.spec; do
|
||
targets+=($file)
|
||
type[$file]=script
|
||
install[$file]='$(SHAREDIR)/services'
|
||
auto[$file]=true
|
||
chmod[$file]=0644
|
||
done
|
||
|
||
for file in templates/*.j2; do
|
||
targets+=($file)
|
||
type[$file]=script
|
||
install[$file]='$(SHAREDIR)/templates'
|
||
auto[$file]=true
|
||
chmod[$file]=0644
|
||
done
|
||
|
||
for file in utils/*; do
|
||
targets+=($file)
|
||
type[$file]=script
|
||
done
|
||
|
||
for file in doc/*; do
|
||
[[ "$file" =~ .*\.scd$ ]] || continue
|
||
|
||
targets+=(${file%.scd})
|
||
type[${file%.scd}]=scdoc
|
||
sources[${file%.scd}]=${file}
|
||
done
|
||
|
||
# FIXME: This should be upstreamed.
|
||
function script.install {
|
||
if [[ "false" = "${install[$target]}" ]]; then
|
||
ofile.install "$@"
|
||
else
|
||
binary.install "$@"
|
||
fi
|
||
}
|
||
|
||
install[status]='$(LIBEXECDIR)/service'
|
||
|
||
function scdoc.prelude {
|
||
for target in $targets; do
|
||
[[ "${type[$target]}" == "scdoc" ]] || continue
|
||
|
||
if [[ -z "${install[$target]}" ]]; then
|
||
local section="${file%.scd}"
|
||
section="${section#*.}"
|
||
|
||
install[$target]="\$(SHAREDIR)/man/man${section}"
|
||
fi
|
||
done
|
||
}
|
||
|
||
function SCD {
|
||
SED "$@" | sed 's|SED|SCD|'
|
||
}
|
||
|
||
function scdoc.build {
|
||
write "${target}: ${sources[$target]}"
|
||
write "\t@echo '$(SCD $target)'"
|
||
write "\t${Q}scdoc < ${sources[$target]} > $target || rm $target"
|
||
}
|
||
|
||
function scdoc.install {
|
||
script.install "$@"
|
||
}
|
||
|
||
function scdoc.uninstall {
|
||
script.uninstall "$@"
|
||
}
|
||
|
||
function scdoc.clean {
|
||
script.clean "$@"
|
||
}
|
||
|