forked from archibate/vimrc
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpackage.sh
More file actions
executable file
·41 lines (34 loc) · 1.11 KB
/
package.sh
File metadata and controls
executable file
·41 lines (34 loc) · 1.11 KB
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
#!/bin/bash
set -e
workspace=/tmp/__workspace__$RANDOM.tar.gz
payload=/tmp/__payload__$RANDOM.tar.gz
script=/tmp/vimrc-install.sh
cd "$(dirname $0)"
test -f install.sh
test -d ccls
test -f ../.vimrc
test -d ../.vim
rm -rf "$workspace"
mkdir -p "$workspace"
cp -r ../.vimrc ../.vim "$workspace"
cd "$workspace"
vim --clean --not-a-term -c 'let g:plug_home = "'"$workspace"'/.vim/plugged" | source '"$workspace"'/.vim/autoload/plug.vim | source '"$workspace"'/.vimrc | PlugInstall | quit | quit'
rm -rf .vim/plugged/*/.git
tar zcvf "$payload" .vimrc .vim
rm -rf "$workspace"
# https://stackoverflow.com/questions/29418050/package-tar-gz-into-a-shell-script
printf "#!/bin/bash
set -e
rm -rf /tmp/_extract_.\$\$ /tmp/_extract_.\$\$.tar
mkdir -p /tmp/_extract_.\$\$
cat > /tmp/_extract_.\$\$.tar.gz.b64 << __VIMRC_PAYLOAD_EOF__\n" > "$script"
base64 "$payload" >> "$script"
printf "\n__VIMRC_PAYLOAD_EOF__
cd /tmp/_extract_.\$\$
base64 -d /tmp/_extract_.\$\$.tar.gz.b64 | tar -xz
.vim/install.sh
rm -rf /tmp/_extract_.\$\$ /tmp/_extract_.\$\$.tar.gz.b64
\n" >> "$script"
rm "$payload"
chmod +x "$script"
echo -- finished with "$script"