summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/cmd/local.mk3
-rw-r--r--lib/cmd/shell.sh42
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}"
+}