Skip to content

Commit be845fa

Browse files
committed
improve installation and update
1 parent 0c33320 commit be845fa

3 files changed

Lines changed: 167 additions & 70 deletions

File tree

README.md

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,24 @@ More screenshots [here](https://github.com/mskyaxl/wsl-terminal/wiki/Screenshots
1515

1616
## Usage
1717

18-
1. [Download here](https://github.com/mskyaxl/wsl-terminal/releases), or run `bash -c "wget https://github.com/mskyaxl/wsl-terminal/releases/download/v0.9.2/wsl-terminal-0.9.2.7z && 7z x wsl-terminal-0.9.2.7z"` in `cmd.exe` or WSL.
19-
Make sure you have 7z installed. On Ubuntu run: `sudo apt install p7zip-full`, on Archlinux: run `pacman -S p7zip`
18+
1. Make sure you have 7z installed. On Ubuntu run: ```sudo apt install p7zip-full```, on Archlinux: run ```pacman -S p7zip```
2019

21-
For the tabbed version run
22-
```
23-
bash -c "wget https://github.com/mskyaxl/wsl-terminal/releases/download/v0.9.2/wsl-terminal-tabbed-0.9.2.7z && 7z x wsl-wsl-terminal-tabbed-0.9.2.7z"
24-
```
20+
run
21+
22+
```
23+
wsl bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)"
24+
```
25+
in `cmd.exe` or
26+
```
27+
bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)"
28+
```
29+
in WSL.
30+
31+
32+
For the tabbed version run
33+
```
34+
bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)" '' -t
35+
```
2536
2637
2. Run `open-wsl.exe` to open a WSL terminal in current directory (need to be on a local NTFS volume, [more details](https://github.com/rprichard/wslbridge#building-wslbridge)).
2738

scripts/install.sh

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
#!/bin/bash
2+
3+
4+
set -e
5+
6+
usage() {
7+
echo "build.sh [-v <version>] [-t] [-u <existing folder>]"
8+
echo "Options:"
9+
echo "-v <version> version to be installed(latest is default)"
10+
echo "-t installs the tabbed version"
11+
echo "-u <folder> version to be installed(latest is default)"
12+
}
13+
version=""
14+
tabbed=0
15+
foldername=""
16+
emoji_support=0
17+
semanticVersion_reqex=".*(^[0-9]+\.[0-9]+\.[0-9]+)(-[0-9A-Za-z]+)*(_(tabbed))*$.*"
18+
19+
scriptpath="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
20+
cd $scriptpath
21+
while getopts "htv:u:" opt; do
22+
case ${opt} in
23+
h )
24+
usage;
25+
exit 0
26+
;;
27+
t )
28+
tabbed=1
29+
;;
30+
v )
31+
version=$(echo ${OPTARG} | sed -rn 's/'$semanticVersion_reqex'/\1/p')
32+
if [[ "$version" == "" ]]; then
33+
echo "Invalid verion: -$version" 1>&2
34+
exit 1
35+
fi
36+
;;
37+
u )
38+
existing_install_folder=${OPTARG}
39+
if [[ ! -d $existing_install_folder ]]; then
40+
echo "folder does not exist: - $existing_install_folder" 1>&2
41+
exit 1
42+
fi
43+
;;
44+
\? )
45+
echo "Invalid Option: -$OPTARG" 1>&2
46+
exit 1
47+
;;
48+
esac
49+
done
50+
51+
if [ "$version" == "" ]; then
52+
version=$(wget -nc https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/VERSION -O - 2>/dev/null)
53+
fi
54+
55+
if [ "$existing_install_folder" != "" ]; then
56+
tabbed=0
57+
cd $existing_install_folder
58+
curent_version=$(cat VERSION | sed -rn 's/'$semanticVersion_reqex'/\1/p')
59+
variant=$(cat VERSION | sed -rn 's/'$semanticVersion_reqex'/\4/p')
60+
echo Checking the latest version ...
61+
if [[ "$curent_version" == "$version" ]]; then
62+
echo Already the latest version: $version
63+
exit
64+
fi
65+
66+
echo -n "Upgrade [$curent_version] to [$version]? (y/n)"
67+
read -n1 answer
68+
if [ "$answer" != "y" ]; then
69+
exit
70+
fi
71+
printf "\n"
72+
if [ "$variant" == "tabbed" ]; then
73+
echo "tabbed version detected"
74+
tabbed=1
75+
fi
76+
77+
fi
78+
79+
if [ $(which 7z) == "" ]; then
80+
echo "7z command not found."
81+
echo "install 7z in wsl"
82+
echo "ubuntu: sudo apt install p7zip-full"
83+
echo "Archlinux: pacman -S p7zip"
84+
exit 1
85+
fi
86+
87+
if [ $tabbed == 1 ]; then
88+
filename=wsl-terminal-tabbed-$version.7z
89+
ttyrcfile=fattyrc
90+
foldername=wsl-terminal-tabbed
91+
emoji_support=0
92+
else
93+
filename=wsl-terminal-$version.7z
94+
ttyrcfile=minttyrc
95+
foldername=wsl-terminal
96+
emoji_support=1
97+
fi
98+
99+
printf "downloading $filename ..."
100+
if [ ! -e "$filename" ]; then
101+
wget -nc "https://github.com/mskyaxl/wsl-terminal/releases/download/v$version/$filename" > /dev/null 2>&1
102+
fi
103+
printf "done\n"
104+
105+
rm -rf $foldername
106+
printf "extracting(this might take a while)..."
107+
7z x "$filename" > /dev/null 2>&1 || {
108+
echo "$filename is broken, try again."
109+
rm -v "$filename"
110+
exit 1
111+
}
112+
printf "done\n"
113+
114+
if [ "$existing_install_folder" != "" ]; then
115+
printf "updating."
116+
mv $foldername/tools/* tools/
117+
printf "."
118+
mv $foldername/etc/wsl-terminal.conf etc/wsl-terminal.conf.pacnew
119+
mv $foldername/etc/$ttyrcfile etc/$ttyrcfile.pacnew
120+
mv $foldername/etc/lang/* etc/lang/
121+
printf "."
122+
if [[ emoji_support == 1 ]]; then
123+
mkdir -p etc/emojis/openmoji
124+
printf "."
125+
mv $foldername/etc/emojis/openmoji/* etc/emojis/openmoji/
126+
fi
127+
128+
printf "."
129+
mv $foldername/etc/themes/* etc/themes/
130+
mv $foldername/etc/README.md etc/
131+
132+
cd $foldername/bin
133+
for i in *; do
134+
mv "../../bin/$i" "../../bin/$i.$$.bak"
135+
mv "$i" "../../bin/$i"
136+
rm -f ../../bin/*.bak 2>/dev/null || true
137+
done
138+
cd ../..
139+
140+
rm -rf doc
141+
mv $foldername/doc .
142+
mv $foldername/{*.*,cmdtool,VERSION} .
143+
144+
printf "done\n"
145+
rm -rf $foldername
146+
fi
147+
148+
rm "$filename"
149+
exit

src/cmdtool

Lines changed: 1 addition & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -67,70 +67,7 @@ elif [[ "$1" == wpath ]]; then
6767
exit 1
6868
fi
6969
elif [[ "$1" == update ]]; then
70-
which 7z || {
71-
echo "7z command not found."
72-
exit 1
73-
}
74-
75-
semanticVersion_reqex=".*(^[0-9]+\.[0-9]+\.[0-9]+)(-[0-9A-Za-z]+)*(_(tabbed))*$.*"
76-
version=$(cat VERSION | sed -rn 's/'$semanticVersion_reqex'/\1/p')
77-
tabbed=$(cat VERSION | sed -rn 's/'$semanticVersion_reqex'/\4/p')
78-
echo Checking the latest version ...
79-
latest_version=$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/VERSION -O -)
80-
if [[ "$version" == "$latest_version" ]]; then
81-
echo Already the latest version: $version
82-
exit
83-
fi
84-
85-
echo -n "Upgrade [$version] to [$latest_version]? (y/n)"
86-
read -n1 answer
87-
if [[ "$answer" != "y" ]]; then
88-
exit
89-
fi
90-
91-
if [[ "$tabbed" == tabbed ]]; then
92-
echo "\ntabbed version detected"
93-
filename=wsl-terminal-tabbed-$latest_version.7z
94-
foldername=wsl-terminal-tabbed
95-
ttyrcfile=fattyrc
96-
else
97-
filename=wsl-terminal-$latest_version.7z
98-
foldername=wsl-terminal
99-
ttyrcfile=minttyrc
100-
fi
101-
102-
if [[ ! -e "$filename" ]]; then
103-
wget -c "https://github.com/mskyaxl/wsl-terminal/releases/download/v$latest_version/$filename"
104-
fi
105-
106-
rm -rf $foldername
107-
7z x "$filename" || {
108-
echo "$filename is broken, try again."
109-
rm -v "$filename"
110-
exit 1
111-
}
112-
113-
mv -v $foldername/tools/* tools/
114-
mv -v $foldername/etc/wsl-terminal.conf etc/wsl-terminal.conf.pacnew
115-
mv -v $foldername/etc/$ttyrcfile etc/$ttyrcfile.pacnew
116-
mv -v $foldername/etc/lang/* etc/lang/
117-
mv -v $foldername/etc/themes/* etc/themes/
118-
mv -v $foldername/etc/README.md etc/
119-
120-
cd $foldername/bin
121-
for i in *; do
122-
mv "../../bin/$i" "../../bin/$i.$$.bak"
123-
mv -v "$i" "../../bin/$i"
124-
rm -f ../../bin/*.bak 2>/dev/null || true
125-
done
126-
cd ../..
127-
128-
rm -rf doc
129-
mv -v $foldername/doc .
130-
mv -v $foldername/{*.*,cmdtool,VERSION} .
131-
132-
rm -rf $foldername
133-
rm "$filename"
70+
bash -c "$(wget https://raw.githubusercontent.com/mskyaxl/wsl-terminal/master/scripts/install.sh -qO -)" '' -u ${PWD}
13471
echo OK
13572
exit
13673
elif [[ "$1" == "killall" ]]; then

0 commit comments

Comments
 (0)