summaryrefslogtreecommitdiffstats
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/pb-console89
1 files changed, 58 insertions, 31 deletions
diff --git a/utils/pb-console b/utils/pb-console
index 00b25ac..81be218 100644
--- a/utils/pb-console
+++ b/utils/pb-console
@@ -6,63 +6,90 @@
ui=petitboot-nc
shell=sh
-
+getty=/sbin/getty
+use_getty=0
detach=0
usage() {
cat >&2 <<EOF
-pb-console [OPTIONS] console_dev
+pb-console [OPTIONS] -- [ARGS]
OPTIONS
-d, --detach
Start in a detached (background) state.
+
+ -g, --getty[=PATH]
+ Start a getty (specified by PATH, otherwise $getty),
+ passing additional ARGS to the getty process
+
+ -s, --shell=PATH
+ Use PATH as the exit-to-shell shell
+
+ -u, --ui=PATH
+ Use PATH as the petitboot UI
+
-h, --help
Print a help message.
EOF
exit 1
}
-while [ -n "$1" ]
+opts=$(getopt --options 'hdg::s:u:' \
+ --long 'help,detach,getty::,shell:,ui:' \
+ -- "$@")
+[ $? = 0 ] || exit 1
+
+eval set -- "$opts"
+
+while :
do
case "$1" in
- --detach | -d)
+ -d | --detach)
detach=1
+ shift
+ ;;
+ -g | --getty)
+ use_getty=1
+ getty_arg="$2"
+ shift 2
+ ;;
+ -s | --shell)
+ shell="$2"
+ shift 2
+ ;;
+ -u | --ui)
+ ui="$2"
+ shift 2
;;
--help | -h)
usage
;;
--)
+ shift
+ break
;;
*)
- console=$1
- ;;
+ echo "getopt error"
+ exit 1
esac
- shift
done
-if [ -n "$console" -a "${console#/dev/}" = "$console" ]
-then
- console="/dev/$console"
-fi
-
-pb_loop() {
- while :
- do
- $ui
- echo "Exiting petitboot. Type 'exit' to return."
- $shell
- done
-}
-
-if [ -n "$console" ]
+if [ "$use_getty" = 1 ]
then
- exec <$console >$console 2>&1
+ if [ -n "$getty_arg" ]
+ then
+ getty="$getty_arg"
+ fi
+ if [ "$detach" = 1 ]
+ then
+ $getty -l $0 "$@" &
+ else
+ exec $getty -l $0 "$@"
+ fi
fi
-if [ "$detach" = 1 ]
-then
- (
- pb_loop
- ) &
-else
- pb_loop
-fi
+while :
+do
+ $ui
+ echo "Exiting petitboot. Type 'exit' to return."
+ $shell
+done
OpenPOWER on IntegriCloud