summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/cmd/local.mk3
-rw-r--r--lib/cmd/shell.sh42
-rw-r--r--locale/en_US.sh5
3 files changed, 49 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}"
+}
diff --git a/locale/en_US.sh b/locale/en_US.sh
index 123c949..246ebd7 100644
--- a/locale/en_US.sh
+++ b/locale/en_US.sh
@@ -72,5 +72,10 @@ msg_prokit_cmd_install_downloading_pkg='Downloading %s...'
msg_prokit_cmd_install_downloading_pkg_fail='Failed to download package'
msg_prokit_cmd_install_unpacking_pkg='Unpacking %s...'
+# lib/cmd/shell.sh
+msg_prokit_cmd_shell_summary='enter a ProteanOS shell'
+msg_prokit_cmd_shell_usage='<chroot>'
+msg_prokit_cmd_shell_exiting='Exiting...'
+
# lib/profile.sh
msg_prokit_profile_not_found='Profile "%s" not found'