]> git.wh0rd.org - home.git/blobdiff - .bin/custom-chroot
redshift: add -x option
[home.git] / .bin / custom-chroot
index 324405cc915c28fc20f2c8adec911a80bb17d788..f86e41df71e3f548edb7eda593250d35f711d7a4 100755 (executable)
@@ -6,7 +6,11 @@ bootstrap() {
        if [[ -z ${UNSHARE} ]] ; then
                mount_args=
                if type -P unshare >&/dev/null ; then
-                       UNSHARE=true exec unshare -m -- "$0" "$@"
+                       uargs=( -m )
+                       unshare -u -- true >&/dev/null && uargs+=( -u )
+                       unshare -i -- true >&/dev/null && uargs+=( -i )
+                       unshare -p -- true >&/dev/null && uargs+=( -p -f --mount-proc )
+                       UNSHARE=true exec unshare "${uargs[@]}" -- "$0" "$@"
                fi
        else
                mount_args='-n'
@@ -93,7 +97,7 @@ usage() {
 main() {
        bootstrap "$@"
 
-       local mounts=( proc sys tmp dev dev/pts dev/shm usr/portage usr/portage/distfiles usr/local/src )
+       local mounts=( proc sys tmp dev dev/pts dev/shm run usr/portage usr/portage/distfiles usr/local/src )
 
        local chroot=${0%/*}
        case ${chroot} in
@@ -107,7 +111,7 @@ main() {
                -u) cmd='umount' ;;
                -m) mounts+=( "$2" ); shift ;;
                -d) chroot=$(realpath "$2"); shift ;;
-               -h) usage ;;
+               --help|-h) usage ;;
                -*) echo "${0##*/}: unknown option $1"; exit 1 ;;
                *)  break ;;
                esac