chiark / gitweb /
busybox: Update from 1.28.2 to 1.28.3
[termux-packages] / packages / termux-tools / chsh
1 #!/bin/sh
2
3 set -e -u
4
5 show_usage () {
6         echo "usage: chsh [-s shell]"
7         echo "Change the login shell."
8 }
9
10 set_shell () {
11         if [ "$1" = login ]; then
12                 echo "login is not a valid shell"
13                 exit 1
14         fi
15         mkdir -p $HOME/.termux
16         NEW_SHELL=$PREFIX/bin/$1
17         if test -x $NEW_SHELL -a ! -d $NEW_SHELL; then
18                 ln -f -s $NEW_SHELL $HOME/.termux/shell
19         else
20                 echo "$NEW_SHELL is not an executable file!"
21         fi
22 }
23
24 O=`getopt -l help -- hs: "$@"`
25 eval set -- "$O"
26 while true; do
27         case "$1" in
28                 -h|--help) show_usage; exit 0;;
29                 -s) set_shell $2; exit 0;;
30                 --)     shift; break;;
31                 *)      echo Error; show_usage; exit 1;;
32         esac
33 done
34
35 DEFAULT_SHELL=bash
36 if [ ! -x $PREFIX/bin/$DEFAULT_SHELL ]; then DEFAULT_SHELL=ash; fi
37
38 echo Changing the login shell
39 echo Enter the new value, or press ENTER for the default
40 printf "        Login Shell [$DEFAULT_SHELL]: "
41 read shell
42
43 if [ -z "$shell" ]; then shell=$DEFAULT_SHELL; fi
44 set_shell $shell