114 lines
3.0 KiB
Bash
Executable File
114 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
##makedesc: Install lite-xl v2.1.7
|
|
|
|
set -eo pipefail
|
|
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
echo "ERROR: lite-xl portable install is not supported on macOS. Use brew install --cask lite-xl or build from source." >&2
|
|
exit 1
|
|
fi
|
|
|
|
installed() { command -v "$1" >/dev/null 2>&1; }
|
|
|
|
install() {
|
|
echo
|
|
echo "==============================================="
|
|
echo "Installing lite-xl v2.1.7"
|
|
echo "==============================================="
|
|
echo
|
|
|
|
# https://github.com/lite-xl/lite-xl/releases
|
|
# https://lite-xl.com/setup/getting-started/
|
|
|
|
tar_url="https://github.com/lite-xl/lite-xl/releases/download/v2.1.7/lite-xl-v2.1.7-addons-linux-x86_64-portable.tar.gz"
|
|
lpm_url="https://github.com/lite-xl/lite-xl-plugin-manager/releases/download/latest/lpm.x86_64-linux"
|
|
tar_filepath="$HOME/install/lite-xl-v2.1.7.tar.gz"
|
|
untar_dir="$HOME/install"
|
|
|
|
rm -rf \
|
|
"$HOME/.local/bin/lpm" \
|
|
"$HOME/install/lite-xl" \
|
|
"$HOME/.local/bin/lite-xl" \
|
|
"$HOME/.local/share/lite-xl"
|
|
|
|
mkdir -p \
|
|
"$untar_dir" \
|
|
"$HOME/.local/bin" \
|
|
"$HOME/.local/share/lite-xl"
|
|
|
|
if installed wget; then
|
|
wget -q --show-progress "$tar_url" -O "$tar_filepath"
|
|
wget -q --show-progress "$lpm_url" -O "$HOME/.local/bin/lpm"
|
|
else
|
|
curl -fsSL "$tar_url" -o "$tar_filepath"
|
|
curl -fsSL "$lpm_url" -o "$HOME/.local/bin/lpm"
|
|
fi
|
|
|
|
chmod +x "$HOME/.local/bin/lpm"
|
|
tar -xzf "$tar_filepath" -C "$untar_dir"
|
|
cp -f "$untar_dir/lite-xl/lite-xl" "$HOME/.local/bin/"
|
|
cp -fr "$untar_dir"/lite-xl/data/* "$HOME/.local/share/lite-xl/"
|
|
|
|
cat << EOF > "$HOME/.local/share/applications/org.lite_xl.lite_xl.desktop"
|
|
[Desktop Entry]
|
|
Type=Application
|
|
Name=Lite XL
|
|
Comment=A lightweight text editor written in Lua
|
|
Exec=$HOME/.local/bin/lite-xl %F
|
|
Icon=lite-xl
|
|
Terminal=false
|
|
StartupWMClass=lite-xl
|
|
Categories=Development;IDE;
|
|
MimeType=text/plain;
|
|
EOF
|
|
|
|
if command -v update-desktop-database >/dev/null 2>&1; then
|
|
sudo update-desktop-database
|
|
fi
|
|
if command -v xdg-desktop-menu >/dev/null 2>&1; then
|
|
xdg-desktop-menu forceupdate
|
|
fi
|
|
|
|
echo
|
|
echo "Finish!"
|
|
echo
|
|
}
|
|
|
|
remove() {
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
if installed brew; then
|
|
brew uninstall --cask lite-xl 2>/dev/null || true
|
|
fi
|
|
return
|
|
fi
|
|
|
|
echo
|
|
echo "==============================================="
|
|
echo "Removing lite-xl"
|
|
echo "==============================================="
|
|
echo
|
|
|
|
rm -rf \
|
|
"$HOME/.local/bin/lite-xl" \
|
|
"$HOME/.local/bin/lpm" \
|
|
"$HOME/.local/share/applications/org.lite_xl.lite_xl.desktop" \
|
|
"$HOME/.local/share/lite-xl" \
|
|
"$HOME/.config/lite-xl"
|
|
|
|
if command -v update-desktop-database >/dev/null 2>&1; then
|
|
sudo update-desktop-database
|
|
fi
|
|
if command -v xdg-desktop-menu >/dev/null 2>&1; then
|
|
xdg-desktop-menu forceupdate
|
|
fi
|
|
|
|
echo
|
|
echo "Finish!"
|
|
echo
|
|
}
|
|
|
|
case "$1" in
|
|
r|remove|d|delete|p|purge) remove ;;
|
|
*) install ;;
|
|
esac
|