diff options
author | Ting-Wei Lan <lantw44@gmail.com> | 2015-05-16 21:59:02 +0800 |
---|---|---|
committer | Ting-Wei Lan <lantw44@gmail.com> | 2015-05-16 22:02:18 +0800 |
commit | 0b12f712d6923b24a6fb8ab44b440fff85015011 (patch) | |
tree | 3909c0f830e767d29a7c3b5ee0e38265fbfff02c | |
parent | 2065e42dff4c7d1c744fceea8c1d1e82b611221a (diff) | |
download | configfile-0b12f712d6923b24a6fb8ab44b440fff85015011.tar.gz configfile-0b12f712d6923b24a6fb8ab44b440fff85015011.tar.zst configfile-0b12f712d6923b24a6fb8ab44b440fff85015011.zip |
bash_include: 加入 rpm_source_repackage 用於快速重新打包 SRPMbash_include-20150516
-rw-r--r-- | bash_include | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/bash_include b/bash_include index 42c2637..f74c2e2 100644 --- a/bash_include +++ b/bash_include @@ -182,14 +182,18 @@ alias safe_grep='GREP_OPTIONS= \grep' case "$OSTYPE" in *openbsd*) + alias safe_cp_verbose='safe_cp' alias safe_mv_verbose='safe_mv' alias safe_ln_verbose='safe_ln' + safe_cp_verbose='cp' safe_mv_verbose='mv' safe_ln_verbose='ln' ;; *) + alias safe_cp_verbose='safe_cp -v' alias safe_mv_verbose='safe_mv -v' alias safe_ln_verbose='safe_ln -v' + safe_cp_verbose='cp -v' safe_mv_verbose='mv -v' safe_ln_verbose='ln -v' ;; @@ -1680,6 +1684,51 @@ function rpmsize () done } +function rpm_source_repackage () +{ + local tmptop="`mktemp --tmpdir -d rpm_source_repackage.XXXXXXXXXX`" + local args=("$@") + local srpm="$1" + local -a cmd + local -i i + + echo "==> Installing source packages: $1" + rpm --define "_topdir $tmptop" -ivh "$1" + safe_cp "$tmptop/SPECS"/*.spec "$tmptop/SOURCES" + + echo "==> Entering directory: $tmptop/SOURCES" + pushd "$tmptop/SOURCES" >/dev/null + + for((i=1; i<$#; i++)) { + if [ "${args[$i]}" = "--" ]; then + if [ "$cmd" ]; then + echo "==> Running command: ${cmd[@]}" + "${cmd[@]}" + cmd=() + fi + else + cmd+=("${args[$i]}") + fi + } + + if [ "$cmd" ]; then + echo "==> Running command: ${cmd[@]}" + "${cmd[@]}" + fi + + safe_cp "$tmptop/SOURCES"/*.spec "$tmptop/SPECS" + + echo "==> Rebuilding source packages" + rpmbuild --define "_topdir $tmptop" -bs "$tmptop/SPECS"/*.spec + + echo "==> Leaving directory: $tmptop/SOURCES" + popd >/dev/null + + echo "==> Copying built source packages" + safe_cp_verbose -i "$tmptop/SRPMS"/*.src.rpm . + rm -rf "$tmptop" +} + function freebsd_ports_should_rebuild () { if [ -f "/var/db/pkg/local.sqlite" ]; then @@ -2061,6 +2110,7 @@ function help_function () <<< Tools: Packages >>> rpmdu [-kmg] packages ... rpmsize [-bkmg] packages ... + rpm_source_repackage srpm -- command1 ... [-- command2 ...] freebsd_ports_should_rebuild <<< Tools: Personal Files >>> |