diff options
Diffstat (limited to 'lib/cmd')
-rw-r--r-- | lib/cmd/local.mk | 3 | ||||
-rw-r--r-- | lib/cmd/shell.sh | 42 |
2 files changed, 44 insertions, 1 deletions
diff --git a/lib/cmd/local.mk b/lib/cmd/local.mk index d7d5b7e..aba8908 100644 --- a/lib/cmd/local.mk +++ b/lib/cmd/local.mk @@ -1,4 +1,5 @@ pkgdatacmd_sources = \ lib/cmd/help.sh \ lib/cmd/version.sh \ - lib/cmd/install.sh + lib/cmd/install.sh \ + lib/cmd/shell.sh diff --git a/lib/cmd/shell.sh b/lib/cmd/shell.sh new file mode 100644 index 0000000..58b0e6b --- /dev/null +++ b/lib/cmd/shell.sh @@ -0,0 +1,42 @@ +# ProteanOS Development Kit +# lib/cmd/shell.sh +# "shell" command +# +# Copyright (C) 2014 Patrick "P. J." McDermott +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +use profile +use chroot + +cmd_shell_main() +{ + local root= + + if [ ${#} -ne 1 ]; then + print_cmd_usage 'shell' >&2 + exit 1 + fi + + root="${1}" + + # TODO: This should be recorded in the chroot. + profile_set 'proteanos' + + chroot_mount "${root}" + chroot "${root}" /bin/sh + printf '\n' + info "$(get_msg 'cmd_shell_exiting')" + chroot_umount "${root}" +} |