Skip to content

Commit 43401f0

Browse files
committed
Script: modify install appimage script
1 parent 09a9545 commit 43401f0

File tree

4 files changed

+37
-29
lines changed

4 files changed

+37
-29
lines changed

.github/workflows/linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ jobs:
130130
chmod a+x RabbitRemoteControl_${{env.RabbitRemoteControl_VERSION}}_Linux_${ARCH}.AppImage
131131
cp ${{github.workspace}}/build_appimage/AppDir/usr/share/applications/io.github.KangLin.RabbitRemoteControl.desktop io.github.KangLin.RabbitRemoteControl.desktop
132132
cp ${{github.workspace}}/build_appimage/AppDir/usr/share/icons/hicolor/scalable/apps/io.github.KangLin.RabbitRemoteControl.svg io.github.KangLin.RabbitRemoteControl.svg
133-
cp ${{github.workspace}}/Script/install.sh install.sh
133+
cp ${{github.workspace}}/Script/install_appimage.sh install.sh
134134
chmod a+x install.sh
135135
popd
136136
zip RabbitRemoteControl_${{env.RabbitRemoteControl_VERSION}}_Linux_${ARCH}_Setup.zip RabbitRemoteControl_${{env.RabbitRemoteControl_VERSION}}_Linux_${ARCH}_Setup/*

Script/build_linux.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ if [ $DOCKER -eq 1 ]; then
225225
chmod a+rx RabbitRemoteControl_`uname -m`.AppImage
226226
cp ~/RabbitRemoteControl/build_appimage/AppDir/usr/share/applications/io.github.KangLin.RabbitRemoteControl.desktop .
227227
cp ~/RabbitRemoteControl/build_appimage/AppDir/usr/share/icons/hicolor/scalable/apps/io.github.KangLin.RabbitRemoteControl.svg .
228-
cp ~/RabbitRemoteControl/Script/install.sh .
228+
cp ~/RabbitRemoteControl/Script/install_appimage.sh install.sh
229229
chmod a+rx install.sh
230230
popd
231231
"

Script/install.sh renamed to Script/install_appimage.sh

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
#!/bin/bash
22

3-
# Setup rabbit remote control appimage shell script
3+
# Setup AppImage shell script
44
# Author: Kang Lin <kl222@126.com>
55

66
#set -v
77
set -e
88
#set -x
99

10-
INSTALL_DIR=~/AppImage/io.github.KangLin.RabbitRemoteControl
10+
APP_ID=io.github.KangLin.RabbitRemoteControl
11+
INSTALL_DIR=$HOME/AppImage/$APP_ID
12+
DESKTOP_FILE_DIR=$HOME/.local/share/applications
13+
DESKTOP_FILE=$DESKTOP_FILE_DIR/$APP_ID.AppImage.desktop
14+
1115
usage_long() {
1216
echo "$0 [-h|--help] [--install=<install directory>]"
1317
echo " -h|--help: show help"
1418
echo "Directory:"
1519
echo " --install: Set install directory"
1620
exit
1721
}
22+
1823
# [如何使用getopt和getopts命令解析命令行选项和参数](https://zhuanlan.zhihu.com/p/673908518)
1924
# [【Linux】Shell命令 getopts/getopt用法详解](https://blog.csdn.net/arpospf/article/details/103381621)
2025
if command -V getopt >/dev/null; then
@@ -61,58 +66,60 @@ if command -V getopt >/dev/null; then
6166
done
6267
fi
6368

64-
if [ -f ~/.local/share/applications/io.github.KangLin.RabbitRemoteControl.AppImage.desktop ]; then
65-
OLD_UNINSTALL=$(dirname $(readlink -f ~/.local/share/applications/io.github.KangLin.RabbitRemoteControl.AppImage.desktop))
69+
if [ -f $DESKTOP_FILE ]; then
70+
OLD_UNINSTALL=$(dirname $(readlink -f $DESKTOP_FILE))
6671
if [ -f $OLD_UNINSTALL/uninstall.sh ]; then
67-
echo ""
72+
#echo "Run $OLD_UNINSTALL/uninstall.sh"
6873
$OLD_UNINSTALL/uninstall.sh
6974
fi
7075
fi
7176

7277
INSTALL_DIR=$(readlink -f $INSTALL_DIR)
7378
if [ ! -d $INSTALL_DIR ]; then
7479
mkdir -p $INSTALL_DIR
80+
CREATE_INSTALL_DIR=1
7581
fi
7682

7783
ROOT_DIR=$(dirname $(readlink -f $0))
78-
if [ ! -d /usr/share/icons/hicolor/scalable/apps ]; then
79-
mkdir -p /usr/share/icons/hicolor/scalable/apps
84+
if [ ! -d $DESKTOP_FILE_DIR ]; then
85+
mkdir -p $DESKTOP_FILE_DIR
8086
fi
8187

8288
pushd $ROOT_DIR > /dev/null
8389

8490
APPIMAGE_FILE=`ls RabbitRemoteControl_*.AppImage`
8591
if [ $INSTALL_DIR != $ROOT_DIR ]; then
8692
cp $APPIMAGE_FILE $INSTALL_DIR/$APPIMAGE_FILE
87-
cp io.github.KangLin.RabbitRemoteControl.svg $INSTALL_DIR/io.github.KangLin.RabbitRemoteControl.svg
88-
cp io.github.KangLin.RabbitRemoteControl.desktop $INSTALL_DIR/io.github.KangLin.RabbitRemoteControl.desktop
93+
cp $APP_ID.svg $INSTALL_DIR/$APP_ID.svg
94+
cp $APP_ID.desktop $INSTALL_DIR/$APP_ID.desktop
8995
fi
9096

91-
sed -i "s#Exec=.*#Exec=${INSTALL_DIR}/${APPIMAGE_FILE}#g" $INSTALL_DIR/io.github.KangLin.RabbitRemoteControl.desktop
92-
if [ ! -f ~/.local/share/applications/io.github.KangLin.RabbitRemoteControl.AppImage.desktop ]; then
93-
ln -s $INSTALL_DIR/io.github.KangLin.RabbitRemoteControl.desktop ~/.local/share/applications/io.github.KangLin.RabbitRemoteControl.AppImage.desktop
97+
# 修改执行文件
98+
sed -i "s#Exec=.*#Exec=${APPIMAGE_FILE}#g" $INSTALL_DIR/$APP_ID.desktop
99+
# 修改路径
100+
sed -i "s#Path=.*#Path=${INSTALL_DIR}#g" $INSTALL_DIR/$APP_ID.desktop
101+
if [ ! -f $DESKTOP_FILE ]; then
102+
CREATE_DESKTOP_FILE=1
103+
ln -s ${INSTALL_DIR}/$APP_ID.desktop $DESKTOP_FILE
104+
# ICON 使用绝对路径。因为已修改了 Path,所以此处可以不用修改
105+
#sed -i "s#^Icon=.*#Icon=$INSTALL_DIR/$APP_ID.svg#" $INSTALL_DIR/$APP_ID.desktop
94106
fi
95-
if [ ! -d ~/.icons/hicolor/scalable/apps ]; then
96-
mkdir -p ~/.icons/hicolor/scalable/apps
107+
108+
echo "echo \"Uninstall \\\"Rabbit Remote Control\\\" AppImage from \\\"$(dirname $(readlink -f $DESKTOP_FILE))\\\"\"" > $INSTALL_DIR/uninstall.sh
109+
if [ -n $CREATE_DESKTOP_FILE ]; then
110+
echo "rm $DESKTOP_FILE" >> $INSTALL_DIR/uninstall.sh
97111
fi
98-
if [ ! -f ~/.icons/hicolor/scalable/apps/io.github.KangLin.RabbitRemoteControl.svg ]; then
99-
ln -s $INSTALL_DIR/io.github.KangLin.RabbitRemoteControl.svg ~/.icons/hicolor/scalable/apps/io.github.KangLin.RabbitRemoteControl.svg
112+
if [ -n $CREATE_INSTALL_DIR ]; then
113+
echo "rm -fr $INSTALL_DIR" >> $INSTALL_DIR/uninstall.sh
100114
fi
101-
102-
update-desktop-database ~/.local/share/applications
103-
104-
echo "echo \"Uninstall rabbit remote control in $(dirname $(readlink -f ~/.local/share/applications/io.github.KangLin.RabbitRemoteControl.AppImage.desktop))\"" > $INSTALL_DIR/uninstall.sh
105-
echo "rm ~/.local/share/applications/io.github.KangLin.RabbitRemoteControl.AppImage.desktop" >> $INSTALL_DIR/uninstall.sh
106-
echo "rm ~/.icons/hicolor/scalable/apps/io.github.KangLin.RabbitRemoteControl.svg" >> $INSTALL_DIR/uninstall.sh
107-
echo "rm -fr $INSTALL_DIR" >> $INSTALL_DIR/uninstall.sh
108115
chmod u+x $INSTALL_DIR/uninstall.sh
109116
chmod u+x $INSTALL_DIR/$APPIMAGE_FILE
110117

111118
echo ""
112-
echo "Install rabbit remote control AppImage to \"$INSTALL_DIR\"."
119+
echo "Install \"Rabbit Remote Control\" AppImage to \"$INSTALL_DIR\"."
113120
echo ""
114121
echo "If you want to uninstall it. Please execute:"
115-
echo " $INSTALL_DIR/unistasll.sh"
122+
echo " $INSTALL_DIR/uninstall.sh"
116123
echo ""
117124

118125
popd > /dev/null

share/applications/io.github.KangLin.RabbitRemoteControl.desktop.in

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
# https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
22
# The desktop directory:
3+
# ~/.local/share/applications/
34
# /usr/share/applications/
45
# /usr/local/share/applications/
5-
# ~/.local/share/applications/
6+
#
67
# Use follow order to update desktop database
78
# `sudo update-desktop-database`
89

910
[Desktop Entry]
1011
Type=Application
11-
# Icon path
12+
# Icon path: http://freedesktop.org/wiki/Standards/icon-theme-spec
1213
# The freedesktop.org standard specifies in which order and directories programs should look for icons:
1314
#
1415
# $HOME/.icons (for backwards compatibility)

0 commit comments

Comments
 (0)