diff options
author | Bryan Drewery <bryan@shatow.net> | 2014-04-23 03:22:18 +0400 |
---|---|---|
committer | Bryan Drewery <bryan@shatow.net> | 2014-04-23 03:22:18 +0400 |
commit | f21f559159fe08ebae08a4f4e25404aedac40198 (patch) | |
tree | d97728686c62de14d4158fd652b5e4ad9de2774a | |
parent | 21b999f91f797b1d4889e329d52abc6971a61824 (diff) |
jail: Add back -i support (99% taken from combo command from dragonfly branch)
-rw-r--r-- | src/bin/poudriere.8 | 4 | ||||
-rwxr-xr-x | src/share/poudriere/common.sh | 3 | ||||
-rwxr-xr-x | src/share/poudriere/jail.sh | 83 |
3 files changed, 81 insertions, 9 deletions
diff --git a/src/bin/poudriere.8 b/src/bin/poudriere.8 index bf269f73..5adb0e24 100644 --- a/src/bin/poudriere.8 +++ b/src/bin/poudriere.8 @@ -242,6 +242,10 @@ These subcommands are mutually exclusive. Creates a jail. .It Fl d Deletes a jail. +.It Fl i +Show information about a jail. +See also +.Cm status . .It Fl l List all available jails. .It Fl n diff --git a/src/share/poudriere/common.sh b/src/share/poudriere/common.sh index e261c293..29e95e67 100755 --- a/src/share/poudriere/common.sh +++ b/src/share/poudriere/common.sh @@ -2097,6 +2097,8 @@ calculate_elapsed() { [ $# -eq 2 ] || eargs calculate_elapsed now log local now="$1" local log="$2" + + [ -f "${log}/.poudriere.status" ] || return 1 start_end_time=$(stat -f '%B %m' ${log}/.poudriere.status) start_time=${start_end_time% *} case "${status}" in @@ -2106,6 +2108,7 @@ calculate_elapsed() { _start_time=${start_time} _end_time=${end_time} _elapsed_time=$((${end_time} - ${start_time})) + return 0 } # Build ports in parallel diff --git a/src/share/poudriere/jail.sh b/src/share/poudriere/jail.sh index c6df147e..3ba6fde3 100755 --- a/src/share/poudriere/jail.sh +++ b/src/share/poudriere/jail.sh @@ -32,6 +32,7 @@ poudriere jail [parameters] [options] Parameters: -c -- Create a jail -d -- Delete a jail + -i -- Show information about a jail -l -- List all available jails -s -- Start a jail -k -- Stop a jail @@ -558,6 +559,61 @@ EOF msg "Jail ${JAILNAME} ${VERSION} ${ARCH} is ready to be used" } +info_jail() { + local nbb nbf nbi nbq nbs tobuild + local building_started status log + local elapsed elapsed_days elapsed_hms elapsed_timestamp + local now start_time + jail_exists ${JAILNAME} || err 1 "No such jail: ${JAILNAME}" + porttree_exists ${PTNAME} || err 1 "No such tree: ${PTNAME}" + + POUDRIERE_BUILD_TYPE=bulk + BUILDNAME=latest + + log=$(log_path) + now=$(date +%s) + + status=$(bget status 2>/dev/null || :) + nbq=$(bget stats_queued 2>/dev/null || :) + nbf=$(bget stats_failed 2>/dev/null || :) + nbi=$(bget stats_ignored 2>/dev/null || :) + nbs=$(bget stats_skipped 2>/dev/null || :) + nbb=$(bget stats_built 2>/dev/null || :) + tobuild=$((nbq - nbb - nbf - nbi - nbs)) + + echo "Jail name: ${JAILNAME}" + echo "Jail version: $(jget ${JAILNAME} version)" + echo "Jail arch: $(jget ${JAILNAME} arch)" + echo "Jail acquired: $(jget ${JAILNAME} method)" +# echo "Jail built: $(jget ${JAILNAME} timestamp)" + echo "Tree name: ${PTNAME}" + echo "Tree acquired: $(pget ${PTNAME} method)" +# echo "Tree updated: $(pget ${PTNAME} timestamp)" + echo "Status: ${status}" + if calculate_elapsed ${now} ${log}; then + start_time=${_start_time} + elapsed=${_elapsed_time} + building_started=$(date -j -r ${start_time} "+%Y-%m-%d %H:%M:%S") + elapsed_days=$((elapsed/86400)) + elapsed_hms=$(date -j -u -r ${elapsed} "+%H:%M:%S") + case ${elapsed_days} in + 0) elapsed_timestamp="${elapsed_hms}" ;; + 1) elapsed_timestamp="1 day, ${elapsed_hms}" ;; + *) elapsed_timestamp="${elapsed_days} days, ${elapsed_hms}" ;; + esac + echo "Building started: ${building_started}" + echo "Elapsed time: ${elapsed_timestamp}" + echo "Packages built: ${nbb}" + echo "Packages failed: ${nbf}" + echo "Packages ignored: ${nbi}" + echo "Packages skipped: ${nbs}" + echo "Packages total: ${nbq}" + echo "Packages left: ${tobuild}" + fi + + unset POUDRIERE_BUILD_TYPE +} + ARCH=`uname -m` REALARCH=${ARCH} START=0 @@ -577,8 +633,11 @@ SCRIPTPATH=`realpath $0` SCRIPTPREFIX=`dirname ${SCRIPTPATH}` . ${SCRIPTPREFIX}/common.sh -while getopts "J:j:v:a:z:m:nf:M:sdklqcip:r:ut:z:P:" FLAG; do +while getopts "iJ:j:v:a:z:m:nf:M:sdklqcip:r:ut:z:P:" FLAG; do case "${FLAG}" in + i) + INFO=1 + ;; j) JAILNAME=${OPTARG} ;; @@ -665,15 +724,21 @@ if [ -n "${JAILNAME}" -a ${CREATE} -eq 0 ]; then JAILMNT=$(jget ${JAILNAME} mnt) fi -case "${CREATE}${LIST}${STOP}${START}${DELETE}${UPDATE}${RENAME}" in - 1000000) +case "${CREATE}${INFO}${LIST}${STOP}${START}${DELETE}${UPDATE}${RENAME}" in + 10000000) test -z ${JAILNAME} && usage create_jail ;; - 0100000) + 01000000) + test -z ${JAILNAME} && usage + export MASTERNAME=${JAILNAME}-${PTNAME}${SETNAME:+-${SETNAME}} + export MASTERMNT=${POUDRIERE_DATA}/build/${MASTERNAME}/ref + info_jail + ;; + 00100000) list_jail ;; - 0010000) + 00010000) test -z ${JAILNAME} && usage porttree_exists ${PTNAME} || err 2 "No such ports tree ${PTNAME}" export MASTERNAME=${JAILNAME}-${PTNAME}${SETNAME:+-${SETNAME}} @@ -682,7 +747,7 @@ case "${CREATE}${LIST}${STOP}${START}${DELETE}${UPDATE}${RENAME}" in msg "Jail ${MASTERNAME} not running, but cleaning up anyway" jail_stop ;; - 0001000) + 00001000) export SET_STATUS_ON_START=0 test -z ${JAILNAME} && usage porttree_exists ${PTNAME} || err 2 "No such ports tree ${PTNAME}" @@ -693,15 +758,15 @@ case "${CREATE}${LIST}${STOP}${START}${DELETE}${UPDATE}${RENAME}" in # Restart with network jstart 1 ;; - 0000100) + 00000100) test -z ${JAILNAME} && usage delete_jail ;; - 0000010) + 00000010) test -z ${JAILNAME} && usage update_jail ;; - 0000011) + 00000011) test -z ${JAILNAME} && usage rename_jail ;; |