mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-26 16:11:56 +02:00
cros_workon: introduce --all flag
* Replaced listall with list --all * stop/start without arguments will now fail * stop/start with --all will do just the expected thing * Rewritten package list decision logic TBR: msb - already got LGTM, then fixed a comment i noticed Review URL: http://codereview.chromium.org/2963011
This commit is contained in:
parent
7d12cb8bd1
commit
f9a42ed40b
44
cros_workon
44
cros_workon
@ -24,13 +24,14 @@ DEFINE_boolean host "${FLAGS_FALSE}" \
|
|||||||
"Uses the host instead of board"
|
"Uses the host instead of board"
|
||||||
DEFINE_string command "git status" \
|
DEFINE_string command "git status" \
|
||||||
"The command to be run by forall."
|
"The command to be run by forall."
|
||||||
|
DEFINE_boolean all "${FLAGS_FALSE}" \
|
||||||
|
"Apply to all possible packages for the given command"
|
||||||
|
|
||||||
FLAGS_HELP="usage: $0 <command> [flags]
|
FLAGS_HELP="usage: $0 <command> [flags]
|
||||||
commands:
|
commands:
|
||||||
start: Moves an ebuild to live (intended to support development)
|
start: Moves an ebuild to live (intended to support development)
|
||||||
stop: Moves an ebuild to stable (use last known good)
|
stop: Moves an ebuild to stable (use last known good)
|
||||||
list: List of current live ebuilds
|
list: List of live ebuilds (workon ebuilds if --all)
|
||||||
listall: List all possible cros-workon ebuilds
|
|
||||||
forall: For each ebuild, cd to the source dir and run a commond"
|
forall: For each ebuild, cd to the source dir and run a commond"
|
||||||
FLAGS "$@" || exit 1
|
FLAGS "$@" || exit 1
|
||||||
eval set -- "${FLAGS_ARGV}"
|
eval set -- "${FLAGS_ARGV}"
|
||||||
@ -105,15 +106,6 @@ show_live_ebuilds () {
|
|||||||
cat "${KEYWORDS_FILE}"
|
cat "${KEYWORDS_FILE}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ATOM_LIST=$@
|
|
||||||
if [ -z "${ATOM_LIST}" ]; then
|
|
||||||
ATOM_LIST=$(show_live_ebuilds)
|
|
||||||
else
|
|
||||||
if ! ATOM_LIST=$(canonicalize_names "${ATOM_LIST}"); then
|
|
||||||
die "Error parsing package list"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Move a stable ebuild to the live development catgeory. The ebuild
|
# Move a stable ebuild to the live development catgeory. The ebuild
|
||||||
# src_unpack step fetches the package source for local development.
|
# src_unpack step fetches the package source for local development.
|
||||||
ebuild_to_live () {
|
ebuild_to_live () {
|
||||||
@ -174,11 +166,37 @@ show_workon_ebuilds() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# --all makes commands operate on different lists
|
||||||
|
if [ ${FLAGS_all} = "${FLAGS_TRUE}" ]; then
|
||||||
|
case ${WORKON_CMD} in
|
||||||
|
start) ATOM_LIST=$(show_workon_ebuilds);;
|
||||||
|
stop) ATOM_LIST=$(show_live_ebuilds);;
|
||||||
|
list) ;;
|
||||||
|
*) die "--all is invalid for the given command";;
|
||||||
|
esac
|
||||||
|
else # not selected --all
|
||||||
|
ATOM_LIST=$@
|
||||||
|
case ${WORKON_CMD} in
|
||||||
|
start|stop)
|
||||||
|
if [ -z "${ATOM_LIST}" ]; then
|
||||||
|
die "${WORKON_CMD}: No packages specified"
|
||||||
|
elif ! ATOM_LIST=$(canonicalize_names "${ATOM_LIST}"); then
|
||||||
|
die "Error parsing package list"
|
||||||
|
fi;;
|
||||||
|
forall)
|
||||||
|
if [ -z "${ATOM_LIST}" ]; then
|
||||||
|
ATOM_LIST=$(show_workon_ebuilds)
|
||||||
|
elif ! ATOM_LIST=$(canonicalize_names "${ATOM_LIST}"); then
|
||||||
|
die "Error parsing package list"
|
||||||
|
fi;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
case ${WORKON_CMD} in
|
case ${WORKON_CMD} in
|
||||||
start) ebuild_to_live "${ATOM_LIST}" ;;
|
start) ebuild_to_live "${ATOM_LIST}" ;;
|
||||||
stop) ebuild_to_stable "${ATOM_LIST}" ;;
|
stop) ebuild_to_stable "${ATOM_LIST}" ;;
|
||||||
list) show_live_ebuilds ;;
|
list) [ ${FLAGS_all} = "${FLAGS_FALSE}" ] && show_live_ebuilds || show_workon_ebuilds ;;
|
||||||
forall) ebuild_forall "${ATOM_LIST}" ;;
|
forall) ebuild_forall "${ATOM_LIST}" ;;
|
||||||
listall)show_workon_ebuilds ;;
|
|
||||||
*) die "invalid cros_workon command" ;;
|
*) die "invalid cros_workon command" ;;
|
||||||
esac
|
esac
|
||||||
|
Loading…
x
Reference in New Issue
Block a user