From d6829755d60067aa229fbc23979436df9c443670 Mon Sep 17 00:00:00 2001 From: CyberLeo Date: Wed, 4 May 2011 03:18:34 -0500 Subject: [PATCH] j: support 'ls' verb for listing chroots --- j | 24 ++++++++++++++++-------- ls | 1 + 2 files changed, 17 insertions(+), 8 deletions(-) create mode 120000 ls diff --git a/j b/j index b3aaaf3..6602fb5 100755 --- a/j +++ b/j @@ -46,14 +46,6 @@ jenv=" USER=${USER} " -# List available jails -j_ls() { - ( cd "${jbase}"; ls -1 ) | while read jname - do - something - done -} - # Create a new chroot, somehow j_init() { # Either a debian chroot with debootstrap or a gentoo chroot with stage3 + portage tarballs @@ -99,6 +91,20 @@ j_params() { ) } +# Is this a chroot? +j_is() { + eval $(j_params "${1}") + [ "${jerror}" ] && return 1 || return 0 +} + +# List available chroots +j_ls() { + ( cd "${jbase}"; ls -1 ) | while read jname + do + j_is "${jname}" && echo "${jname}" + done +} + # Chroot is 'up' if /dev/pts and /proc are mounted j_up() { jname="${1:-${jname}}" @@ -109,6 +115,7 @@ j_up() { return 0 } +# Poll chroot status (j_up) j_status() { [ -z "${1}" ] && set - $(l_ls) while [ "${1}" ] @@ -154,6 +161,7 @@ j_stop() { } case "${cmd}" in +ls|list) j_ls ;; status) j_status "${jname}" "${@}" ;; start) j_start "${jname}" ;; shell|enter) j_shell "${jname}" ;; diff --git a/ls b/ls new file mode 120000 index 0000000..0fe2fa5 --- /dev/null +++ b/ls @@ -0,0 +1 @@ +j \ No newline at end of file -- 2.42.0