Skip to content

Commit fe1e003

Browse files
Terminal initrc support (Acode-Foundation#1590)
* feat: initrc * fix: bashrc * format * feat: motd * fix: remove newline if motd is empty
1 parent 7a339ef commit fe1e003

File tree

2 files changed

+57
-17
lines changed

2 files changed

+57
-17
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
},
3636
"cordova-plugin-websocket": {},
3737
"cordova-plugin-buildinfo": {},
38-
"cordova-plugin-browser": {},
3938
"cordova-plugin-system": {},
39+
"cordova-plugin-browser": {},
4040
"com.foxdebug.acode.rk.exec.terminal": {}
4141
},
4242
"platforms": [
Lines changed: 56 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,89 @@
1-
set -e # Exit immediately on Failure
1+
set -e # Exit immediately on failure
2+
23

34
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/share/bin:/usr/share/sbin:/usr/local/bin:/usr/local/sbin:/system/bin:/system/xbin:$PREFIX/local/bin
45
export PS1="\[\e[38;5;46m\]\u\[\033[39m\]@localhost \[\033[39m\]\w \[\033[0m\]\\$ "
5-
export PIP_BREAK_SYSTEM_PACKAGES=1
66
export HOME=/home
77
export TERM=xterm-256color
8-
required_packages="bash"
98

9+
10+
required_packages="bash"
1011
missing_packages=""
12+
1113
for pkg in $required_packages; do
12-
if ! apk info -e $pkg >/dev/null 2>&1; then
14+
if ! apk info -e "$pkg" >/dev/null 2>&1; then
1315
missing_packages="$missing_packages $pkg"
1416
fi
1517
done
18+
1619
if [ -n "$missing_packages" ]; then
17-
echo -e "\e[34;1m[*] \e[0mInstalling Important packages\e[0m"
20+
echo -e "\e[34;1m[*] \e[0mInstalling important packages\e[0m"
1821
apk update && apk upgrade
1922
apk add $missing_packages
2023
if [ $? -eq 0 ]; then
21-
echo -e "\e[32;1m[+] \e[0mSuccessfully Installed\e[0m"
24+
echo -e "\e[32;1m[+] \e[0mSuccessfully installed\e[0m"
2225
fi
2326
echo -e "\e[34m[*] \e[0mUse \e[32mapk\e[0m to install new packages\e[0m"
2427
fi
2528

2629

27-
if [[ ! -f /linkerconfig/ld.config.txt ]];then
30+
if [ ! -f /linkerconfig/ld.config.txt ]; then
2831
mkdir -p /linkerconfig
2932
touch /linkerconfig/ld.config.txt
3033
fi
3134

32-
[ ! -L /bin/login ] && mv /bin/login /bin/real_login
33-
ln -sf /bin/bash /bin/login
3435

3536
if [ "$1" = "--installing" ]; then
36-
mkdir -p $PREFIX/.configured
37-
echo "Installation completed."
38-
exit 0
37+
mkdir -p "$PREFIX/.configured"
38+
echo "Installation completed."
39+
exit 0
3940
fi
4041

4142

42-
4343
if [ "$#" -eq 0 ]; then
44-
echo "$$" > $PREFIX/pid
45-
chmod +x $PREFIX/axs
46-
$PREFIX/axs
44+
echo "$$" > "$PREFIX/pid"
45+
chmod +x "$PREFIX/axs"
46+
47+
if [ ! -e "$PREFIX/alpine/etc/acode_motd" ]; then
48+
cat <<EOF > "$PREFIX/alpine/etc/acode_motd"
49+
Welcome to Alpine Linux in Acode!
50+
51+
Working with packages:
52+
53+
- Search: apk search <query>
54+
- Install: apk add <package>
55+
- Uninstall: apk del <package>
56+
- Upgrade: apk update && apk upgrade
57+
58+
EOF
59+
fi
60+
61+
# Create initrc if it doesn't exist
62+
if [ ! -e "$PREFIX/alpine/initrc" ]; then
63+
cat <<EOF > "$PREFIX/alpine/initrc"
64+
if [[ -f ~/.bashrc ]]; then
65+
source ~/.bashrc
66+
fi
67+
68+
if [[ -f /etc/bash/bashrc ]]; then
69+
source /etc/bash/bashrc
70+
fi
71+
72+
export PATH=\$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/share/bin:/usr/share/sbin:/usr/local/bin:/usr/local/sbin
73+
export HOME=/home
74+
export TERM=xterm-256color
75+
export SHELL=\$(command -v bash)
76+
77+
if [ -s /etc/acode_motd ]; then
78+
cat /etc/acode_motd
79+
fi
80+
81+
EOF
82+
fi
83+
84+
echo 'export PS1="\[\e[38;5;46m\]\u\[\e[0m\]@localhost \[\e[0m\]\w \[\e[0m\]\\$ "' >> $PREFIX/alpine/initrc
85+
chmod +x "$PREFIX/alpine/initrc"
86+
"$PREFIX/axs" -c "bash --rcfile /initrc -i"
4787
else
4888
exec "$@"
4989
fi

0 commit comments

Comments
 (0)