1
0
mirror of https://github.com/laurent22/joplin.git synced 2024-12-21 09:38:01 +02:00

Deskop: Linux: Add option to select installation directory (#10800)

This commit is contained in:
Pavel Koneski 2024-07-31 05:57:04 -07:00 committed by GitHub
parent c0dc30d0c4
commit ecc4f3e22a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -28,6 +28,7 @@ SILENT=false
ALLOW_ROOT=false ALLOW_ROOT=false
SHOW_CHANGELOG=false SHOW_CHANGELOG=false
INCLUDE_PRE_RELEASE=false INCLUDE_PRE_RELEASE=false
INSTALL_DIR="${HOME}/.joplin" # default installation directory
print() { print() {
if [[ "${SILENT}" == false ]]; then if [[ "${SILENT}" == false ]]; then
@ -57,6 +58,7 @@ showHelp() {
print "\t" "--force" "\t" "Always download the latest version" print "\t" "--force" "\t" "Always download the latest version"
print "\t" "--silent" "\t" "Don't print any output" print "\t" "--silent" "\t" "Don't print any output"
print "\t" "--prerelease" "\t" "Check for new Versions including Pre-Releases" print "\t" "--prerelease" "\t" "Check for new Versions including Pre-Releases"
print "\t" "--install-dir" "\t" "Set installation directory; default: \"${INSTALL_DIR}\""
if [[ ! -z $1 ]]; then if [[ ! -z $1 ]]; then
print "\n" "${COLOR_RED}ERROR: " "$*" "${COLOR_RESET}" "\n" print "\n" "${COLOR_RED}ERROR: " "$*" "${COLOR_RESET}" "\n"
@ -84,6 +86,7 @@ while getopts "${optspec}" OPT; do
force ) FORCE=true ;; force ) FORCE=true ;;
changelog ) SHOW_CHANGELOG=true ;; changelog ) SHOW_CHANGELOG=true ;;
prerelease ) INCLUDE_PRE_RELEASE=true ;; prerelease ) INCLUDE_PRE_RELEASE=true ;;
install-dir ) INSTALL_DIR="$OPTARG" ;;
[^\?]* ) showHelp "Illegal option --${OPT}"; exit 2 ;; [^\?]* ) showHelp "Illegal option --${OPT}"; exit 2 ;;
\? ) showHelp "Illegal option -${OPTARG}"; exit 2 ;; \? ) showHelp "Illegal option -${OPTARG}"; exit 2 ;;
esac esac
@ -143,17 +146,17 @@ else
fi fi
# Check if it's in the latest version # Check if it's in the latest version
if [[ -e ~/.joplin/VERSION ]] && [[ $(< ~/.joplin/VERSION) == "${RELEASE_VERSION}" ]]; then if [[ -e "${INSTALL_DIR}/VERSION" ]] && [[ $(< "${INSTALL_DIR}/VERSION") == "${RELEASE_VERSION}" ]]; then
print "${COLOR_GREEN}You already have the latest version${COLOR_RESET} ${RELEASE_VERSION} ${COLOR_GREEN}installed.${COLOR_RESET}" print "${COLOR_GREEN}You already have the latest version${COLOR_RESET} ${RELEASE_VERSION} ${COLOR_GREEN}installed.${COLOR_RESET}"
([[ "$FORCE" == true ]] && print "Forcing installation...") || exit 0 ([[ "$FORCE" == true ]] && print "Forcing installation...") || exit 0
else else
[[ -e ~/.joplin/VERSION ]] && CURRENT_VERSION=$(< ~/.joplin/VERSION) [[ -e "${INSTALL_DIR}/VERSION" ]] && CURRENT_VERSION=$(< "${INSTALL_DIR}/VERSION")
print "The latest version is ${RELEASE_VERSION}, but you have ${CURRENT_VERSION:-no version} installed." print "The latest version is ${RELEASE_VERSION}, but you have ${CURRENT_VERSION:-no version} installed."
fi fi
# Check if it's an update or a new install # Check if it's an update or a new install
DOWNLOAD_TYPE="New" DOWNLOAD_TYPE="New"
if [[ -f ~/.joplin/Joplin.AppImage ]]; then if [[ -f "${INSTALL_DIR}/Joplin.AppImage" ]]; then
DOWNLOAD_TYPE="Update" DOWNLOAD_TYPE="Update"
fi fi
@ -166,16 +169,16 @@ wget -O "${TEMP_DIR}/joplin.png" https://joplinapp.org/images/Icon512.png
#----------------------------------------------------- #-----------------------------------------------------
print 'Installing Joplin...' print 'Installing Joplin...'
# Delete previous version (in future versions joplin.desktop shouldn't exist) # Delete previous version (in future versions joplin.desktop shouldn't exist)
rm -f ~/.joplin/*.AppImage ~/.local/share/applications/joplin.desktop ~/.joplin/VERSION rm -f "${INSTALL_DIR}"/*.AppImage ~/.local/share/applications/joplin.desktop "${INSTALL_DIR}/VERSION"
# Creates the folder where the binary will be stored # Creates the folder where the binary will be stored
mkdir -p ~/.joplin/ mkdir -p "${INSTALL_DIR}/"
# Download the latest version # Download the latest version
mv "${TEMP_DIR}/Joplin.AppImage" ~/.joplin/Joplin.AppImage mv "${TEMP_DIR}/Joplin.AppImage" "${INSTALL_DIR}/Joplin.AppImage"
# Gives execution privileges # Gives execution privileges
chmod +x ~/.joplin/Joplin.AppImage chmod +x "${INSTALL_DIR}/Joplin.AppImage"
print "${COLOR_GREEN}OK${COLOR_RESET}" print "${COLOR_GREEN}OK${COLOR_RESET}"
@ -254,7 +257,7 @@ if [[ $DESKTOP =~ .*gnome.*|.*kde.*|.*xfce.*|.*mate.*|.*lxqt.*|.*unity.*|.*x-cin
Encoding=UTF-8 Encoding=UTF-8
Name=Joplin Name=Joplin
Comment=Joplin for Desktop Comment=Joplin for Desktop
Exec=env APPIMAGELAUNCHER_DISABLE=TRUE ${HOME}/.joplin/Joplin.AppImage ${SANDBOXPARAM} %u Exec=env APPIMAGELAUNCHER_DISABLE=TRUE "${INSTALL_DIR}/Joplin.AppImage" ${SANDBOXPARAM} %u
Icon=joplin Icon=joplin
StartupWMClass=Joplin StartupWMClass=Joplin
Type=Application Type=Application
@ -279,7 +282,7 @@ fi
print "${COLOR_GREEN}Joplin version${COLOR_RESET} ${RELEASE_VERSION} ${COLOR_GREEN}installed.${COLOR_RESET}" print "${COLOR_GREEN}Joplin version${COLOR_RESET} ${RELEASE_VERSION} ${COLOR_GREEN}installed.${COLOR_RESET}"
# Record version # Record version
echo "$RELEASE_VERSION" > ~/.joplin/VERSION echo "$RELEASE_VERSION" > "${INSTALL_DIR}/VERSION"
#----------------------------------------------------- #-----------------------------------------------------
if [[ "$SHOW_CHANGELOG" == true ]]; then if [[ "$SHOW_CHANGELOG" == true ]]; then