* [gentoo-commits] proj/R_overlay:gsoc13/next commit in: files/scripts/
@ 2013-07-18 19:25 André Erdmann
2013-07-23 7:51 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
0 siblings, 1 reply; 5+ messages in thread
From: André Erdmann @ 2013-07-18 19:25 UTC (permalink / raw
To: gentoo-commits
commit: f37d415d9c84ecd37a0b7ccf02e37d5106dcf486
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Thu Jul 18 19:19:55 2013 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Thu Jul 18 19:19:55 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=f37d415d
files/scripts: run-roverlay.sh
Safely run overlay creation (abort if another process is already running).
This can be used to set up a cron job.
---
files/scripts/run-roverlay.sh | 93 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 93 insertions(+)
diff --git a/files/scripts/run-roverlay.sh b/files/scripts/run-roverlay.sh
new file mode 100755
index 0000000..0ce26b4
--- /dev/null
+++ b/files/scripts/run-roverlay.sh
@@ -0,0 +1,93 @@
+#!/usr/bin/roverlay-sh
+#
+# This script runs R overlay creation and repoman afterwards.
+#
+# It will exit immediately if another instance is already running.
+# To achieve this, filesystem locks are used (/run/lock/roverlay.lock).
+#
+# So, it's safe to set up a cronjob that calls this script.
+#
+set -u
+
+# reset DEBUG, VERBOSE, QUIET
+DEBUG=n; QUIET=n; VERBOSE=y
+
+LC_COLLATE=C
+
+. "${FUNCTIONS?}" || exit 9
+
+readonly MY_LOCK=/run/lock/roverlay
+MY_LOCK_PID=
+
+# void run__cleanup ( **MY_LOCK_PID!, **MY_LOCK )
+#
+# Atexit function that releases the lock.
+#
+run__cleanup() {
+ # release trap
+ trap - INT TERM EXIT
+
+ # release lock
+ if [ -n "${MY_LOCK_PID-}" ]; then
+ kill "${MY_LOCK_PID}"
+ wait "${MY_LOCK_PID}" 2>>${DEVNULL} && MY_LOCK_PID=
+ fi
+ lockfile-remove "${MY_LOCK}" || true
+}
+
+
+# prepare:
+
+# (TODO)
+REPOMAN_ARGS="--pretend full"
+
+WANT_ROVERLAY_CREATE=y
+WANT_ROVERLAY_SYNC=y
+WANT_REPOMAN=y
+
+# parse args
+doshift=1
+while [ $# -gt 0 ]; do
+ case "${1?}" in
+ '+C'|'--no-create') WANT_ROVERLAY_CREATE=n ;;
+ '+S'|'--no-sync') WANT_ROVERLAY_SYNC=n ;;
+ '+R'|'--no-repoman') WANT_REPOMAN=n ;;
+ *)
+ die "unknown arg: ${1}" ${EX_ARG_ERR?}
+ ;;
+ esac
+ shift ${doshift} || OUT_OF_BOUNDS
+ doshift=1
+done
+unset -v doshift
+
+# anything to do?
+
+# main:
+#
+# anything to do? acquire lock
+if ! list_has y \
+ "${WANT_ROVERLAY_CREATE}" "${WANT_ROVERLAY_SYNC}" "${WANT_REPOMAN}"
+then
+ die 'nothing to do' 2
+elif lockfile-create --retry 0 "${MY_LOCK}" 2>>${DEVNULL}; then
+ # hold lock until done
+ lockfile-touch "${MY_LOCK}" &
+ MY_LOCK_PID="$!"
+ trap run__cleanup INT TERM EXIT
+
+ roverlay_opts=""
+ roverlay_opts() { roverlay_opts="${roverlay_opts-}${roverlay_opts:+ }$*"; }
+
+ ! yesno "${WANT_ROVERLAY_SYNC}" || roverlay_opts "--nosync"
+
+ # run roverlay
+ if ${ROVERLAY_EXE} ${roverlay_opts}; then
+ # success, continue with repoman
+ if yesno "${WANT_REPOMAN}"; then
+ ( cd "${S}" && repoman ${REPOMAN_ARGS} 2>&1 1>"${WORKDIR}/repoman.log"; )
+ fi
+ fi
+else
+ die "another instance is already running" 0
+fi
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/R_overlay:master commit in: files/scripts/
2013-07-18 19:25 [gentoo-commits] proj/R_overlay:gsoc13/next commit in: files/scripts/ André Erdmann
@ 2013-07-23 7:51 ` André Erdmann
0 siblings, 0 replies; 5+ messages in thread
From: André Erdmann @ 2013-07-23 7:51 UTC (permalink / raw
To: gentoo-commits
commit: f37d415d9c84ecd37a0b7ccf02e37d5106dcf486
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Thu Jul 18 19:19:55 2013 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Thu Jul 18 19:19:55 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=f37d415d
files/scripts: run-roverlay.sh
Safely run overlay creation (abort if another process is already running).
This can be used to set up a cron job.
---
files/scripts/run-roverlay.sh | 93 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 93 insertions(+)
diff --git a/files/scripts/run-roverlay.sh b/files/scripts/run-roverlay.sh
new file mode 100755
index 0000000..0ce26b4
--- /dev/null
+++ b/files/scripts/run-roverlay.sh
@@ -0,0 +1,93 @@
+#!/usr/bin/roverlay-sh
+#
+# This script runs R overlay creation and repoman afterwards.
+#
+# It will exit immediately if another instance is already running.
+# To achieve this, filesystem locks are used (/run/lock/roverlay.lock).
+#
+# So, it's safe to set up a cronjob that calls this script.
+#
+set -u
+
+# reset DEBUG, VERBOSE, QUIET
+DEBUG=n; QUIET=n; VERBOSE=y
+
+LC_COLLATE=C
+
+. "${FUNCTIONS?}" || exit 9
+
+readonly MY_LOCK=/run/lock/roverlay
+MY_LOCK_PID=
+
+# void run__cleanup ( **MY_LOCK_PID!, **MY_LOCK )
+#
+# Atexit function that releases the lock.
+#
+run__cleanup() {
+ # release trap
+ trap - INT TERM EXIT
+
+ # release lock
+ if [ -n "${MY_LOCK_PID-}" ]; then
+ kill "${MY_LOCK_PID}"
+ wait "${MY_LOCK_PID}" 2>>${DEVNULL} && MY_LOCK_PID=
+ fi
+ lockfile-remove "${MY_LOCK}" || true
+}
+
+
+# prepare:
+
+# (TODO)
+REPOMAN_ARGS="--pretend full"
+
+WANT_ROVERLAY_CREATE=y
+WANT_ROVERLAY_SYNC=y
+WANT_REPOMAN=y
+
+# parse args
+doshift=1
+while [ $# -gt 0 ]; do
+ case "${1?}" in
+ '+C'|'--no-create') WANT_ROVERLAY_CREATE=n ;;
+ '+S'|'--no-sync') WANT_ROVERLAY_SYNC=n ;;
+ '+R'|'--no-repoman') WANT_REPOMAN=n ;;
+ *)
+ die "unknown arg: ${1}" ${EX_ARG_ERR?}
+ ;;
+ esac
+ shift ${doshift} || OUT_OF_BOUNDS
+ doshift=1
+done
+unset -v doshift
+
+# anything to do?
+
+# main:
+#
+# anything to do? acquire lock
+if ! list_has y \
+ "${WANT_ROVERLAY_CREATE}" "${WANT_ROVERLAY_SYNC}" "${WANT_REPOMAN}"
+then
+ die 'nothing to do' 2
+elif lockfile-create --retry 0 "${MY_LOCK}" 2>>${DEVNULL}; then
+ # hold lock until done
+ lockfile-touch "${MY_LOCK}" &
+ MY_LOCK_PID="$!"
+ trap run__cleanup INT TERM EXIT
+
+ roverlay_opts=""
+ roverlay_opts() { roverlay_opts="${roverlay_opts-}${roverlay_opts:+ }$*"; }
+
+ ! yesno "${WANT_ROVERLAY_SYNC}" || roverlay_opts "--nosync"
+
+ # run roverlay
+ if ${ROVERLAY_EXE} ${roverlay_opts}; then
+ # success, continue with repoman
+ if yesno "${WANT_REPOMAN}"; then
+ ( cd "${S}" && repoman ${REPOMAN_ARGS} 2>&1 1>"${WORKDIR}/repoman.log"; )
+ fi
+ fi
+else
+ die "another instance is already running" 0
+fi
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/R_overlay:master commit in: files/scripts/
@ 2013-08-05 11:44 André Erdmann
0 siblings, 0 replies; 5+ messages in thread
From: André Erdmann @ 2013-08-05 11:44 UTC (permalink / raw
To: gentoo-commits
commit: 273c4b4da04467f9483754903d65b3bd209f9ef4
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Mon Aug 5 09:12:08 2013 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Mon Aug 5 09:12:08 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=273c4b4d
files/scripts/run-roverlay.sh: don't reset vars
don't reset DEBUG, VERBOSE, QUIET as it's now handled by roverlay
---
files/scripts/run-roverlay.sh | 3 ---
1 file changed, 3 deletions(-)
diff --git a/files/scripts/run-roverlay.sh b/files/scripts/run-roverlay.sh
index 0ce26b4..b910281 100755
--- a/files/scripts/run-roverlay.sh
+++ b/files/scripts/run-roverlay.sh
@@ -9,9 +9,6 @@
#
set -u
-# reset DEBUG, VERBOSE, QUIET
-DEBUG=n; QUIET=n; VERBOSE=y
-
LC_COLLATE=C
. "${FUNCTIONS?}" || exit 9
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/R_overlay:master commit in: files/scripts/
@ 2013-08-09 15:27 André Erdmann
0 siblings, 0 replies; 5+ messages in thread
From: André Erdmann @ 2013-08-09 15:27 UTC (permalink / raw
To: gentoo-commits
commit: 30112a08e243f51806fbe567ae6c23623aa070e5
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Fri Aug 9 14:58:10 2013 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Fri Aug 9 14:58:10 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=30112a08
files/scripts/run-roverlay.sh: --help, cleanup
---
files/scripts/run-roverlay.sh | 70 +++++++++++++++++++++++++++++++++++--------
1 file changed, 58 insertions(+), 12 deletions(-)
diff --git a/files/scripts/run-roverlay.sh b/files/scripts/run-roverlay.sh
index b910281..dddcc86 100755
--- a/files/scripts/run-roverlay.sh
+++ b/files/scripts/run-roverlay.sh
@@ -7,8 +7,24 @@
#
# So, it's safe to set up a cronjob that calls this script.
#
+# Dependencies:
+# * lockfile-progs (app-misc/lockfile-progs)
+# * portage for repoman
+# * [roverlay]
+#
set -u
+# --- "config" ---
+
+# (TODO)
+REPOMAN_ARGS="--pretend full"
+
+ROVERLAY_ARGS="--strict"
+
+# --- end of config ---
+
+
+
LC_COLLATE=C
. "${FUNCTIONS?}" || exit 9
@@ -16,6 +32,7 @@ LC_COLLATE=C
readonly MY_LOCK=/run/lock/roverlay
MY_LOCK_PID=
+
# void run__cleanup ( **MY_LOCK_PID!, **MY_LOCK )
#
# Atexit function that releases the lock.
@@ -32,12 +49,39 @@ run__cleanup() {
lockfile-remove "${MY_LOCK}" || true
}
+# void run_print_usage()
+#
+# Prints the usage message.
+#
+run_print_usage() {
+echo "Usage: ${0##*/} [option...]
+
+options:
+ -h, --help print this message and exit
+ +C, --no-create disable overlay creation
+ +S, --no-sync disable sync (offline mode)
+ +R, --no-repoman disable repoman"
+}
+
+# @noreturn run_exit_usage ( [message], [code] )
+#
+# Prints the usage message and exits afterwards.
+# Calls die() for exiting if message or code are set.
+#
+run_exit_usage() {
+ if [ $# -eq 0 ]; then
+ print_usage
+ exit 0
+ else
+ print_usage 1>&2
+ echo 1>&2
+ die "$@"
+ fi
+}
+
# prepare:
-# (TODO)
-REPOMAN_ARGS="--pretend full"
-
WANT_ROVERLAY_CREATE=y
WANT_ROVERLAY_SYNC=y
WANT_REPOMAN=y
@@ -46,11 +90,12 @@ WANT_REPOMAN=y
doshift=1
while [ $# -gt 0 ]; do
case "${1?}" in
- '+C'|'--no-create') WANT_ROVERLAY_CREATE=n ;;
- '+S'|'--no-sync') WANT_ROVERLAY_SYNC=n ;;
+ '-h'|'--help') run_exit_usage ;;
+ '+C'|'--no-create') WANT_ROVERLAY_CREATE=n ;;
+ '+S'|'--no-sync') WANT_ROVERLAY_SYNC=n ;;
'+R'|'--no-repoman') WANT_REPOMAN=n ;;
*)
- die "unknown arg: ${1}" ${EX_ARG_ERR?}
+ run_exit_usage "unknown arg: ${1}" ${EX_ARG_ERR?}
;;
esac
shift ${doshift} || OUT_OF_BOUNDS
@@ -58,8 +103,6 @@ while [ $# -gt 0 ]; do
done
unset -v doshift
-# anything to do?
-
# main:
#
# anything to do? acquire lock
@@ -71,18 +114,21 @@ elif lockfile-create --retry 0 "${MY_LOCK}" 2>>${DEVNULL}; then
# hold lock until done
lockfile-touch "${MY_LOCK}" &
MY_LOCK_PID="$!"
- trap run__cleanup INT TERM EXIT
+ trap run__cleanup TERM EXIT
roverlay_opts=""
roverlay_opts() { roverlay_opts="${roverlay_opts-}${roverlay_opts:+ }$*"; }
- ! yesno "${WANT_ROVERLAY_SYNC}" || roverlay_opts "--nosync"
+ ! yesno "${WANT_ROVERLAY_SYNC}" || roverlay_opts "--no-sync"
# run roverlay
- if ${ROVERLAY_EXE} ${roverlay_opts}; then
+ if ${ROVERLAY_EXE} ${ROVERLAY_ARGS-} ${roverlay_opts}; then
# success, continue with repoman
if yesno "${WANT_REPOMAN}"; then
- ( cd "${S}" && repoman ${REPOMAN_ARGS} 2>&1 1>"${WORKDIR}/repoman.log"; )
+ (
+ cd "${S}" && \
+ repoman ${REPOMAN_ARGS-} 1>"${WORKDIR}/repoman.log" 2>&1
+ )
fi
fi
else
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [gentoo-commits] proj/R_overlay:master commit in: files/scripts/
@ 2013-08-12 8:47 André Erdmann
0 siblings, 0 replies; 5+ messages in thread
From: André Erdmann @ 2013-08-12 8:47 UTC (permalink / raw
To: gentoo-commits
commit: b5fb85ed36452a1c95933d395c6d98c57160cc3c
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Mon Aug 12 08:47:04 2013 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Mon Aug 12 08:47:04 2013 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=b5fb85ed
run-roverlay.sh: flip --no-sync condition (typo)
---
files/scripts/run-roverlay.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/files/scripts/run-roverlay.sh b/files/scripts/run-roverlay.sh
index dddcc86..32c38fb 100755
--- a/files/scripts/run-roverlay.sh
+++ b/files/scripts/run-roverlay.sh
@@ -119,7 +119,7 @@ elif lockfile-create --retry 0 "${MY_LOCK}" 2>>${DEVNULL}; then
roverlay_opts=""
roverlay_opts() { roverlay_opts="${roverlay_opts-}${roverlay_opts:+ }$*"; }
- ! yesno "${WANT_ROVERLAY_SYNC}" || roverlay_opts "--no-sync"
+ yesno "${WANT_ROVERLAY_SYNC}" || roverlay_opts "--no-sync"
# run roverlay
if ${ROVERLAY_EXE} ${ROVERLAY_ARGS-} ${roverlay_opts}; then
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-08-12 8:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-18 19:25 [gentoo-commits] proj/R_overlay:gsoc13/next commit in: files/scripts/ André Erdmann
2013-07-23 7:51 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
-- strict thread matches above, loose matches on Subject: below --
2013-08-05 11:44 André Erdmann
2013-08-09 15:27 André Erdmann
2013-08-12 8:47 André Erdmann
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox