mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
create-mskpec.sh: INI parsing -> ini-tools.sh
Push ini-parsing from create-mkspec.sh into ini-tools.sh. Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
parent
2572c931e1
commit
024b629859
2 changed files with 59 additions and 57 deletions
|
|
@ -1,56 +1,19 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
descr=$1
|
inifile=$1
|
||||||
|
dir=`dirname $0`
|
||||||
|
|
||||||
|
. $dir/ini-tools.sh
|
||||||
|
|
||||||
_cat()
|
_cat()
|
||||||
{
|
{
|
||||||
sed 's/^ *|//'
|
sed 's/^ *|//'
|
||||||
}
|
}
|
||||||
|
|
||||||
section()
|
|
||||||
{
|
|
||||||
local sec="$1"
|
|
||||||
cat "$descr" |
|
|
||||||
cut -d\# -f1 |
|
|
||||||
tr -s '\n' '\n' |
|
|
||||||
sed -n "/\[$sec\]/,/\[/ p" |
|
|
||||||
grep -v '\['
|
|
||||||
}
|
|
||||||
|
|
||||||
value()
|
|
||||||
{
|
|
||||||
local path=$1
|
|
||||||
local sec=`echo $1 | sed 's/\.[^.]\+$//'`
|
|
||||||
local key=`echo $1 | sed 's/.*\.//'`
|
|
||||||
|
|
||||||
# echo "path=>$path<"
|
|
||||||
# echo "sec=>$sec<"
|
|
||||||
# echo "key=>$key<"
|
|
||||||
|
|
||||||
if [ "$key" = "$path" ]; then
|
|
||||||
section $path
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
section $sec | sed "
|
|
||||||
/^ *$key *=/ !d
|
|
||||||
s/^ *$key *= *//
|
|
||||||
s/ *$//
|
|
||||||
"
|
|
||||||
}
|
|
||||||
|
|
||||||
escape()
|
|
||||||
{
|
|
||||||
cat | sed '
|
|
||||||
s/\$/\\$/g
|
|
||||||
s/`/\\\`/g
|
|
||||||
'
|
|
||||||
}
|
|
||||||
|
|
||||||
#t()
|
#t()
|
||||||
#{
|
#{
|
||||||
# echo '--------------'
|
# echo '--------------'
|
||||||
# echo $1: `value $1`
|
# echo $1: `ini_value $1`
|
||||||
#}
|
#}
|
||||||
#
|
#
|
||||||
#t global.group
|
#t global.group
|
||||||
|
|
@ -60,7 +23,7 @@ escape()
|
||||||
|
|
||||||
_cat << EOT
|
_cat << EOT
|
||||||
|echo "Name: \$NAME"
|
|echo "Name: \$NAME"
|
||||||
|echo "Summary: `value summary`"
|
|echo "Summary: `ini_value summary`"
|
||||||
|echo "Version: \$VERSION"
|
|echo "Version: \$VERSION"
|
||||||
|echo "Release: \$RELEASE"
|
|echo "Release: \$RELEASE"
|
||||||
|echo "License: Jannet IT Services proprietary license"
|
|echo "License: Jannet IT Services proprietary license"
|
||||||
|
|
@ -71,30 +34,30 @@ escape()
|
||||||
|echo "BuildRoot: /var/tmp/%{name}-buildroot"
|
|echo "BuildRoot: /var/tmp/%{name}-buildroot"
|
||||||
|echo ""
|
|echo ""
|
||||||
|echo "%description"
|
|echo "%description"
|
||||||
|echo "`value description`"
|
|echo "`ini_value description`"
|
||||||
|echo ""
|
|echo ""
|
||||||
EOT
|
EOT
|
||||||
value global.subpackages | grep -q run && _cat << EOT
|
ini_value global.subpackages | grep -q run && _cat << EOT
|
||||||
|# ---------------------------------------
|
|# ---------------------------------------
|
||||||
|echo "%package -n \$NAME-run"
|
|echo "%package -n \$NAME-run"
|
||||||
|echo "Summary: `value summary`"
|
|echo "Summary: `ini_value summary`"
|
||||||
|echo "Group: `value global.group`"
|
|echo "Group: `ini_value global.group`"
|
||||||
|[ "\$REQUIRES_RUN" ] && echo "Requires: \$REQUIRES_RUN"
|
|[ "\$REQUIRES_RUN" ] && echo "Requires: \$REQUIRES_RUN"
|
||||||
|echo "%description -n \$NAME-run"
|
|echo "%description -n \$NAME-run"
|
||||||
|echo "Runtime package"
|
|echo "Runtime package"
|
||||||
|echo ""
|
|echo ""
|
||||||
EOT
|
EOT
|
||||||
value global.subpackages | grep -q devel && _cat << EOT
|
ini_value global.subpackages | grep -q devel && _cat << EOT
|
||||||
|# ---------------------------------------
|
|# ---------------------------------------
|
||||||
|echo "%package -n \$NAME-devel"
|
|echo "%package -n \$NAME-devel"
|
||||||
|echo "Summary: `value summary`, development package"
|
|echo "Summary: `ini_value summary`, development package"
|
||||||
|echo "Group: `value global.group`"
|
|echo "Group: `ini_value global.group`"
|
||||||
|[ "\$REQUIRES_DEVEL" ] && echo "Requires: \$REQUIRES_DEVEL"
|
|[ "\$REQUIRES_DEVEL" ] && echo "Requires: \$REQUIRES_DEVEL"
|
||||||
|echo "%description -n \$NAME-devel"
|
|echo "%description -n \$NAME-devel"
|
||||||
|echo "Development package"
|
|echo "Development package"
|
||||||
|echo ""
|
|echo ""
|
||||||
EOT
|
EOT
|
||||||
value global.subpackages | grep -q run && _cat << EOT
|
ini_value global.subpackages | grep -q run && _cat << EOT
|
||||||
|# ---------------------------------------
|
|# ---------------------------------------
|
||||||
|echo "%prep -n \$NAME-run"
|
|echo "%prep -n \$NAME-run"
|
||||||
|echo ""
|
|echo ""
|
||||||
|
|
@ -120,12 +83,12 @@ _cat << EOT
|
||||||
|echo " grep -e '/include/\|devel\|/lib.*\.a\$\|/make\(/\|$\)' | sort -u > \$INSTALL_LOG.\$NAME-devel"
|
|echo " grep -e '/include/\|devel\|/lib.*\.a\$\|/make\(/\|$\)' | sort -u > \$INSTALL_LOG.\$NAME-devel"
|
||||||
|echo ""
|
|echo ""
|
||||||
EOT
|
EOT
|
||||||
value global.subpackages | grep -q run && _cat << EOT
|
ini_value global.subpackages | grep -q run && _cat << EOT
|
||||||
|echo "%post -n \$NAME-run"
|
|echo "%post -n \$NAME-run"
|
||||||
EOT
|
EOT
|
||||||
section pckg.run.post | grep -q . && {
|
ini_section pckg.run.post | grep -q . && {
|
||||||
echo "cat << EOT"
|
echo "cat << EOT"
|
||||||
section pckg.run.post | escape
|
ini_section pckg.run.post | ini_escape
|
||||||
echo "EOT"
|
echo "EOT"
|
||||||
}
|
}
|
||||||
_cat << EOT
|
_cat << EOT
|
||||||
|
|
@ -133,13 +96,13 @@ _cat << EOT
|
||||||
|echo "%clean"
|
|echo "%clean"
|
||||||
|#echo 'rm -rf \$RPM_BUILD_ROOT'
|
|#echo 'rm -rf \$RPM_BUILD_ROOT'
|
||||||
EOT
|
EOT
|
||||||
value global.subpackages | grep -q run && _cat << EOT
|
ini_value global.subpackages | grep -q run && _cat << EOT
|
||||||
|echo "%files -n \$NAME-run -f \$INSTALL_LOG.\$NAME-run"
|
|echo "%files -n \$NAME-run -f \$INSTALL_LOG.\$NAME-run"
|
||||||
EOT
|
EOT
|
||||||
if value global.subpackages | grep -q devel; then _cat << EOT
|
if ini_value global.subpackages | grep -q devel; then _cat << EOT
|
||||||
|echo "%files -n \$NAME-devel -f \$INSTALL_LOG.\$NAME-devel"
|
|echo "%files -n \$NAME-devel -f \$INSTALL_LOG.\$NAME-devel"
|
||||||
EOT
|
EOT
|
||||||
section pckg.devel.post
|
ini_section pckg.devel.post
|
||||||
else
|
else
|
||||||
_cat << EOT
|
_cat << EOT
|
||||||
|echo "%exclude /opt/\$NAME/make/*.mk"
|
|echo "%exclude /opt/\$NAME/make/*.mk"
|
||||||
|
|
|
||||||
39
scripts/ini-tools.sh
Normal file
39
scripts/ini-tools.sh
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
ini_section()
|
||||||
|
{
|
||||||
|
local sec="$1"
|
||||||
|
cat "$inifile" |
|
||||||
|
cut -d\# -f1 |
|
||||||
|
tr -s '\n' '\n' |
|
||||||
|
sed -n "/\[$sec\]/,/\[/ p" |
|
||||||
|
grep -v '\['
|
||||||
|
}
|
||||||
|
|
||||||
|
ini_value()
|
||||||
|
{
|
||||||
|
local path=$1
|
||||||
|
local sec=`echo $1 | sed 's/\.[^.]\+$//'`
|
||||||
|
local key=`echo $1 | sed 's/.*\.//'`
|
||||||
|
|
||||||
|
# echo "path=>$path<"
|
||||||
|
# echo "sec=>$sec<"
|
||||||
|
# echo "key=>$key<"
|
||||||
|
|
||||||
|
if [ "$key" = "$path" ]; then
|
||||||
|
ini_section $path
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
ini_section $sec | sed "
|
||||||
|
/^ *$key *=/ !d
|
||||||
|
s/^ *$key *= *//
|
||||||
|
s/ *$//
|
||||||
|
"
|
||||||
|
}
|
||||||
|
|
||||||
|
ini_escape()
|
||||||
|
{
|
||||||
|
cat | sed '
|
||||||
|
s/\$/\\$/g
|
||||||
|
s/`/\\\`/g
|
||||||
|
'
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue