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

Linux: style: make install script more consistent

This commit is contained in:
Helmut K. C. Tessarek 2024-01-23 17:42:03 +01:00
parent 8b452106be
commit 681d413b36
No known key found for this signature in database
GPG Key ID: BE0985349D44DD00

View File

@ -30,7 +30,7 @@ SHOW_CHANGELOG=false
INCLUDE_PRE_RELEASE=false INCLUDE_PRE_RELEASE=false
print() { print() {
if [[ "${SILENT}" == false ]] ; then if [[ "${SILENT}" == false ]]; then
echo -e "$@" echo -e "$@"
fi fi
} }
@ -63,7 +63,6 @@ showHelp() {
else else
exit 0 exit 0
fi fi
} }
#----------------------------------------------------- #-----------------------------------------------------
@ -107,12 +106,12 @@ print "Checking architecture..."
## uname actually gives more information than needed, but it contains all architectures (hardware and software) ## uname actually gives more information than needed, but it contains all architectures (hardware and software)
ARCHITECTURE=$(uname -m -p -i || echo "NO CHECK") ARCHITECTURE=$(uname -m -p -i || echo "NO CHECK")
if [[ $ARCHITECTURE = "NO CHECK" ]] ; then if [[ $ARCHITECTURE = "NO CHECK" ]]; then
print "${COLOR_YELLOW}WARNING: Can't get system architecture, skipping check${COLOR_RESET}" print "${COLOR_YELLOW}WARNING: Can't get system architecture, skipping check${COLOR_RESET}"
elif [[ $ARCHITECTURE =~ .*aarch.*|.*arm.* ]] ; then elif [[ $ARCHITECTURE =~ .*aarch.*|.*arm.* ]]; then
showHelp "Arm systems are not officially supported by Joplin, please search the forum (https://discourse.joplinapp.org/) for more information" showHelp "Arm systems are not officially supported by Joplin, please search the forum (https://discourse.joplinapp.org/) for more information"
exit 1 exit 1
elif [[ $ARCHITECTURE =~ .*i386.*|.*i686.* ]] ; then elif [[ $ARCHITECTURE =~ .*i386.*|.*i686.* ]]; then
showHelp "32-bit systems are not supported by Joplin, please search the forum (https://discourse.joplinapp.org/) for more information" showHelp "32-bit systems are not supported by Joplin, please search the forum (https://discourse.joplinapp.org/) for more information"
exit 1 exit 1
fi fi
@ -125,7 +124,7 @@ if [[ $(command -v ldconfig) ]]; then
else else
LIBFUSE=$(find /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib -name "libfuse.so.2" 2>/dev/null | grep "libfuse.so.2" || echo '') LIBFUSE=$(find /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib -name "libfuse.so.2" 2>/dev/null | grep "libfuse.so.2" || echo '')
fi fi
if [[ $LIBFUSE == "" ]] ; then if [[ $LIBFUSE == "" ]]; then
print "${COLOR_RED}Error: Can't get libfuse2 on system, please install libfuse2${COLOR_RESET}" print "${COLOR_RED}Error: Can't get libfuse2 on system, please install libfuse2${COLOR_RESET}"
print "See https://joplinapp.org/help/faq/#desktop-application-will-not-launch-on-linux and https://github.com/AppImage/AppImageKit/wiki/FUSE for more information" print "See https://joplinapp.org/help/faq/#desktop-application-will-not-launch-on-linux and https://github.com/AppImage/AppImageKit/wiki/FUSE for more information"
exit 1 exit 1
@ -186,8 +185,7 @@ mv "${TEMP_DIR}/joplin.png" ~/.local/share/icons/hicolor/512x512/apps/joplin.png
print "${COLOR_GREEN}OK${COLOR_RESET}" print "${COLOR_GREEN}OK${COLOR_RESET}"
# Detect desktop environment # Detect desktop environment
if [ "$XDG_CURRENT_DESKTOP" = "" ] if [ "$XDG_CURRENT_DESKTOP" = "" ]; then
then
DESKTOP=$(echo "${XDG_DATA_DIRS}" | sed 's/.*\(xfce\|kde\|gnome\).*/\1/') DESKTOP=$(echo "${XDG_DATA_DIRS}" | sed 's/.*\(xfce\|kde\|gnome\).*/\1/')
else else
DESKTOP=$XDG_CURRENT_DESKTOP DESKTOP=$XDG_CURRENT_DESKTOP
@ -213,8 +211,7 @@ if command -v lsb_release &> /dev/null; then
# uses these to sandbox processes. Unfortunately, it doesn't look like we can get around this # uses these to sandbox processes. Unfortunately, it doesn't look like we can get around this
# without writing the AppImage to a non-user-writable location (without invalidating other security # without writing the AppImage to a non-user-writable location (without invalidating other security
# controls). See https://discourse.joplinapp.org/t/possible-future-requirement-for-no-sandbox-flag-for-ubuntu-23-10/. # controls). See https://discourse.joplinapp.org/t/possible-future-requirement-for-no-sandbox-flag-for-ubuntu-23-10/.
if [[ $DISTVER = "Ubuntu23.10" || $DISTVER =~ Debian1. || ( "$DISTVER" = "Linuxmint4" && "$DISTCODENAME" = "debbie" ) || ( "$DISTVER" = "CentOS" && "$DISTMAJOR" =~ 6|7 ) ]] if [[ $DISTVER = "Ubuntu23.10" || $DISTVER =~ Debian1. || ( "$DISTVER" = "Linuxmint4" && "$DISTCODENAME" = "debbie" ) || ( "$DISTVER" = "CentOS" && "$DISTMAJOR" =~ 6|7 ) ]]; then
then
SANDBOXPARAM="--no-sandbox" SANDBOXPARAM="--no-sandbox"
print "${COLOR_YELLOW}WARNING${COLOR_RESET} Electron sandboxing disabled." print "${COLOR_YELLOW}WARNING${COLOR_RESET} Electron sandboxing disabled."
print " See https://discourse.joplinapp.org/t/32160/5 for details." print " See https://discourse.joplinapp.org/t/32160/5 for details."
@ -229,8 +226,7 @@ fi
# The old checks are left in place for historical reasons, but # The old checks are left in place for historical reasons, but
# NO MORE DESKTOP ENVIRONMENTS SHOULD BE ADDED # NO MORE DESKTOP ENVIRONMENTS SHOULD BE ADDED
# If a new environment needs to be supported, then the command check section should be re-thought # If a new environment needs to be supported, then the command check section should be re-thought
if [[ $DESKTOP =~ .*gnome.*|.*kde.*|.*xfce.*|.*mate.*|.*lxqt.*|.*unity.*|.*x-cinnamon.*|.*deepin.*|.*pantheon.*|.*lxde.*|.*i3.*|.*sway.* ]] || [[ `command -v update-desktop-database` ]] if [[ $DESKTOP =~ .*gnome.*|.*kde.*|.*xfce.*|.*mate.*|.*lxqt.*|.*unity.*|.*x-cinnamon.*|.*deepin.*|.*pantheon.*|.*lxde.*|.*i3.*|.*sway.* ]] || [[ `command -v update-desktop-database` ]]; then
then
DATA_HOME=${XDG_DATA_HOME:-~/.local/share} DATA_HOME=${XDG_DATA_HOME:-~/.local/share}
DESKTOP_FILE_LOCATION="$DATA_HOME/applications" DESKTOP_FILE_LOCATION="$DATA_HOME/applications"
# Only delete the desktop file if it will be replaced # Only delete the desktop file if it will be replaced
@ -239,21 +235,21 @@ then
# On some systems this directory doesn't exist by default # On some systems this directory doesn't exist by default
mkdir -p "$DESKTOP_FILE_LOCATION" mkdir -p "$DESKTOP_FILE_LOCATION"
# Tabs specifically, and not spaces, are needed for indentation with Bash heredocs # No spaces or tabs should be used for indentation with Bash heredocs
cat >> "$DESKTOP_FILE_LOCATION/appimagekit-joplin.desktop" <<-EOF cat >> "$DESKTOP_FILE_LOCATION/appimagekit-joplin.desktop" <<-EOF
[Desktop Entry] [Desktop Entry]
Encoding=UTF-8 Encoding=UTF-8
Name=Joplin Name=Joplin
Comment=Joplin for Desktop Comment=Joplin for Desktop
Exec=${HOME}/.joplin/Joplin.AppImage ${SANDBOXPARAM} %u Exec=${HOME}/.joplin/Joplin.AppImage ${SANDBOXPARAM} %u
Icon=joplin Icon=joplin
StartupWMClass=Joplin StartupWMClass=Joplin
Type=Application Type=Application
Categories=Office; Categories=Office;
MimeType=x-scheme-handler/joplin; MimeType=x-scheme-handler/joplin;
X-GNOME-SingleWindow=true // should be removed eventually as it was upstream to be an XDG specification X-GNOME-SingleWindow=true // should be removed eventually as it was upstream to be an XDG specification
SingleMainWindow=true SingleMainWindow=true
EOF EOF
# Update application icons # Update application icons
[[ `command -v update-desktop-database` ]] && update-desktop-database "$DESKTOP_FILE_LOCATION" && update-desktop-database "$DATA_HOME/icons" [[ `command -v update-desktop-database` ]] && update-desktop-database "$DESKTOP_FILE_LOCATION" && update-desktop-database "$DATA_HOME/icons"