mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-22 06:00:40 +01:00
jw-pkg: Add command rm-template-output
Also add lots of small fixes and beautifications all over the place. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
d6c6e6ebdd
commit
7ee054b9e8
1 changed files with 49 additions and 6 deletions
|
|
@ -1,5 +1,10 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
log()
|
||||||
|
{
|
||||||
|
echo "$myname: $@"
|
||||||
|
}
|
||||||
|
|
||||||
channel_present()
|
channel_present()
|
||||||
{
|
{
|
||||||
if smart channel --show $1 2>&1 | grep -q baseurl >/dev/null; then
|
if smart channel --show $1 2>&1 | grep -q baseurl >/dev/null; then
|
||||||
|
|
@ -32,6 +37,7 @@ cat << EOT
|
||||||
list-templates: list templates
|
list-templates: list templates
|
||||||
list-template-tables: list templates tables
|
list-template-tables: list templates tables
|
||||||
list-template-output: list template output files
|
list-template-output: list template output files
|
||||||
|
rm-template-output: remove template output files
|
||||||
compile-templates: compile templates
|
compile-templates: compile templates
|
||||||
|
|
||||||
global options are
|
global options are
|
||||||
|
|
@ -211,6 +217,33 @@ cmd_list_template_output()
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cmd_rm_template_output()
|
||||||
|
{
|
||||||
|
local restore=0
|
||||||
|
while [ "${1:0:1}" = '-' ]; do
|
||||||
|
case "$1" in
|
||||||
|
-r)
|
||||||
|
restore=1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
local f
|
||||||
|
cmd_list_template_output $@ | while read f; do
|
||||||
|
log "removing $f"
|
||||||
|
rm $f
|
||||||
|
bak=$f$template_bak_ext
|
||||||
|
if [ "$restore" = 1 -a -f "$bak" ]; then
|
||||||
|
log "restoring $f from $bak"
|
||||||
|
mv $bak $f
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
cmd_compile_templates()
|
cmd_compile_templates()
|
||||||
{
|
{
|
||||||
local ext_from="$template_exts" # TODO: support more than one
|
local ext_from="$template_exts" # TODO: support more than one
|
||||||
|
|
@ -222,10 +255,11 @@ cmd_compile_templates()
|
||||||
local mode=600
|
local mode=600
|
||||||
local conf_patt="^[ ]*# *conf:"
|
local conf_patt="^[ ]*# *conf:"
|
||||||
local missing_table=0
|
local missing_table=0
|
||||||
|
local backup=0
|
||||||
|
|
||||||
umask 0077
|
umask 0077
|
||||||
|
|
||||||
while [ ${1:0:1} = '-' ]; do
|
while [ "${1:0:1}" = '-' ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-o)
|
-o)
|
||||||
owner="$2"
|
owner="$2"
|
||||||
|
|
@ -239,6 +273,9 @@ cmd_compile_templates()
|
||||||
group="$2"
|
group="$2"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
-b)
|
||||||
|
backup=1
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
usage 1
|
usage 1
|
||||||
;;
|
;;
|
||||||
|
|
@ -257,23 +294,28 @@ cmd_compile_templates()
|
||||||
[ -f "$table" ] && break
|
[ -f "$table" ] && break
|
||||||
done
|
done
|
||||||
[ -f $table ] || {
|
[ -f $table ] || {
|
||||||
echo "WARNING: No key-value table found for template $f, not compiling." >&2
|
log "WARNING: No key-value table found for template $f, not compiling." >&2
|
||||||
((missing_table++))
|
((missing_table++))
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
# TODO: use mktemp -d and keep temporary files in read-only dir
|
# TODO: use mktemp -d and keep temporary files in read-only dir
|
||||||
local tmp=$to.tmp
|
local tmp=$to.tmp
|
||||||
echo "Applying macros in $table to $f."
|
log "Applying macros in $table to $f."
|
||||||
eval `sed "/$conf_patt/ !d; s/$conf_patt//" $table`
|
eval `sed "/$conf_patt/ !d; s/$conf_patt//" $table`
|
||||||
sed 's|^[ ]*#.*||; s|\([^ =]\+\)[ =]\+\(.*\)|s/\1/\2/g|' $table | sed -f - $f > $tmp
|
sed 's|^[ ]*#.*||; s|\([^ =]\+\)[ =]\+\(.*\)|s/\1/\2/g|' $table | sed -f - $f > $tmp
|
||||||
chmod $mode $tmp
|
chmod $mode $tmp
|
||||||
chown $owner $tmp
|
chown $owner $tmp
|
||||||
chgrp $group $tmp
|
chgrp $group $tmp
|
||||||
|
local bak=$to$template_bak_ext
|
||||||
|
if [ "$backup" = 1 -a -f $to ] && ! diff -q $to $bak >/dev/null 2>&1; then
|
||||||
|
log "Saving backup to $to to $bak"
|
||||||
|
cp -p $to $bak
|
||||||
|
fi
|
||||||
mv $tmp $to
|
mv $tmp $to
|
||||||
done <<< $(cmd_list_templates "$@")
|
done <<< $(cmd_list_templates "$@")
|
||||||
|
|
||||||
if [ "$missing_table" != 0 ]; then
|
if [ "$missing_table" != 0 ]; then
|
||||||
echo "WARNING: $missing_table missing tables found. You might want to add them and run sudo $cmdline again."
|
log "WARNING: $missing_table missing tables found. You might want to add them and run sudo $cmdline again."
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -291,8 +333,9 @@ longname=$0
|
||||||
opts="v"
|
opts="v"
|
||||||
table_exts=".jw-secret .jw-vars"
|
table_exts=".jw-secret .jw-vars"
|
||||||
template_exts=".jw-tmpl"
|
template_exts=".jw-tmpl"
|
||||||
|
template_bak_ext=".jw-pkg.bak"
|
||||||
|
|
||||||
while [ ${1:0:1} = '-' ]; do
|
while [ "${1:0:1}" = '-' ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-v)
|
-v)
|
||||||
opt_verbose=true
|
opt_verbose=true
|
||||||
|
|
@ -366,7 +409,7 @@ cpp_glib)
|
||||||
ftp://dspadm@ftp.jannet.de/pub/packages/linux/suse/10.1/inst-source/rpm/i586/glib2-2.8.5-19.i586.rpm
|
ftp://dspadm@ftp.jannet.de/pub/packages/linux/suse/10.1/inst-source/rpm/i586/glib2-2.8.5-19.i586.rpm
|
||||||
check_ldconfig "$@"
|
check_ldconfig "$@"
|
||||||
;;
|
;;
|
||||||
compile_templates|list_templates|list_template_tables|list_template_output|diff|build_date|built_today|rpmnew)
|
compile_templates|list_templates|list_template_tables|list_template_output|rm_template_output|diff|build_date|built_today|rpmnew)
|
||||||
cmd_$cmd "$@"
|
cmd_$cmd "$@"
|
||||||
;;
|
;;
|
||||||
help)
|
help)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue