-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathrepo-linuxcontainers.sh
executable file
·109 lines (90 loc) · 1.92 KB
/
repo-linuxcontainers.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/system/bin/sh
set -e
S_ESC="$(echo -en '\e')"
S_N="$(echo -en '\n')"
K_BACK='-2'
FD_I=8
FD_O=9
eval "exec $FD_I<&0"
eval "exec $FD_O>&1"
show_list() {
local N=1
for E in "$@" ; do
if [ "$N" -lt 10 ] ; then echo -n ' ' >&$FD_O ; fi
echo "$N. $E" >&$FD_O
N=$((N+1))
done
}
read_list_elt() {
local N
echo "Anything else - exit" >&$FD_O
echo -n ': ' >&$FD_O
read N >&$FD_O <&$FD_I
if [ "$N" -gt 0 -a "$N" -le "$1" ] >/dev/null 2>&1 ; then
echo $(($N-1))
return 0
fi
echo "$K_BACK"
}
to_uname_arch() {
case "$1" in
armeabi-v7a) echo armv7a ;;
arm64-v8a) echo aarch64 ;;
x86) echo i686 ;;
amd64) echo x86_64 ;;
*) echo "$1" ;;
esac
}
validate_arch() {
case "$1" in
armv7a|aarch64|i686|amd64) echo $1 ; return 0 ;;
*) return 1 ;;
esac
}
to_lco_arch() {
case "$1" in
armv7a) echo armhf ;;
aarch64) echo arm64 ;;
i686) echo i386 ;;
x86_64) echo amd64 ;;
*) echo "$1" ;;
esac
}
# There is no uname on old Androids.
U_ARCH="$(validate_arch "$(uname -m 2>/dev/null)" || ( aa=($MY_DEVICE_ABIS) ; to_uname_arch "${aa[0]}" ))"
R_ARCH="$(to_lco_arch "$U_ARCH")"
echo "$U_ARCH"
chooser() {
TL=()
PL=()
DL=()
RL=()
while IFS=';' read -s -r DISTRO RELEASE ARCH VAR TS PATH
do
if [ "$VAR" = 'default' -a "$ARCH" = "$R_ARCH" ]
then
TL+=("$DISTRO / $RELEASE")
PL+=("$PATH")
DL+=("$DISTRO")
RL+=("$RELEASE")
fi
done
show_list "${TL[@]}"
N=$(read_list_elt "${#PL[@]}")
if [ "$N" -lt 0 ] ; then
exit 0
fi
local D="${DL[$N]}"
local R="${RL[$N]}"
local P="${PL[$N]}"
echo "${D@Q} ${R@Q} ${P@Q}"
}
ARGS=($("$TERMSH" cat \
https://images.linuxcontainers.org/meta/1.0/index-user \
| chooser))
if [ -z "$ARGS" ] ; then exit 0 ; fi
export ROOTFS_URL="https://images.linuxcontainers.org/${ARGS[2]}/rootfs.tar.xz"
S='install-linuxcontainers.sh'
"$TERMSH" copy -f -fu \
"https://raw.githubusercontent.com/green-green-avk/AnotherTerm-scripts/master/$S" \
-tp . && chmod 755 "$S" && sh "./$S" -a "${ARGS[0]}" "${ARGS[1]}"