From 03becc209c3f8ac37110fc93330d3049add72889 Mon Sep 17 00:00:00 2001 From: Sebastian Riedel Date: Sun, 19 Nov 2017 13:59:17 +0100 Subject: [PATCH 1/6] Run GBM.exe with a script --- gbm.desktop | 3 +-- gbm.sh | 20 ++++++++++++++++++++ makefile | 5 ++++- 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100755 gbm.sh diff --git a/gbm.desktop b/gbm.desktop index c43ac81..1ebb7a6 100644 --- a/gbm.desktop +++ b/gbm.desktop @@ -6,9 +6,8 @@ Name=Game Backup Monitor Comment=Monitors games and backs up their savegames Comment[de]=Beobachtet Spiele und sichert ihre Spielstände -Path=/usr/local/bin TryExec=mono -Exec=mono gbm +Exec=gbm Terminal=false Icon=gbm diff --git a/gbm.sh b/gbm.sh new file mode 100755 index 0000000..2cd889c --- /dev/null +++ b/gbm.sh @@ -0,0 +1,20 @@ +#!/bin/sh -e +#check for all dependencies +for prog in {mono,readlink,df,7za,libsqlite3};do + [ -n "`whereis -b ${prog} | cut -sd' ' -f2`" ] || (echo "Please install ${prog}" && exit 1); +done +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"; +echo "Located in ${DIR}"; +GBMPATH='./'; +#locate GBM.exe +if [ \( "${DIR}" == '/bin' \) -a \( -s '/usr/share/gbm/GBM.exe' \) ]; then + GBMPATH='/usr/share/gbm/'; +elif [ \( "${DIR}" == '/usr/local/bin' \) -a \( -s '/usr/local/share/gbm/GBM.exe' \) ]; then + GBMPATH='/usr/local/share/gbm/'; +elif [ ! -s './GBM.exe' ]; then + echo 'GBM.exe not found'; + exit 2; +fi +mono --desktop ${GBMPATH}'GBM.exe' "$@"; +exit 0; + diff --git a/makefile b/makefile index 4532580..54806db 100644 --- a/makefile +++ b/makefile @@ -11,7 +11,9 @@ ifndef XDGUTILS $(error "xdg-desktop-menu is not available, please install xdg-utils") endif #rename it in a way, it can easily started from terminal - install GBM.exe /usr/local/bin/gbm; + install gbm.sh /usr/local/bin/gbm; + install -d /usr/local/share/gbm; + install GBM.exe /usr/local/share/gbm/; #install icon in different sizes $(foreach size,$(ICONSIZES),xdg-icon-resource install --mode system --novendor --noupdate --size $(size) gbm_$(size)x$(size).png gbm;$(\n)) xdg-icon-resource forceupdate --mode system; @@ -23,6 +25,7 @@ ifndef XDGUTILS $(error "xdg-desktop-menu is not available, please install xdg-utils") endif rm /usr/local/bin/gbm; + rm -r /usr/local/share/gbm/; $(foreach size,$(ICONSIZES),xdg-icon-resource uninstall --mode system --novendor --noupdate --size $(size) gbm;$(\n)) xdg-icon-resource forceupdate --mode system; xdg-desktop-menu uninstall --mode system --novendor gbm.desktop; From 1ec5439c5d0a17a8c9f4656d150f2bc39716abbf Mon Sep 17 00:00:00 2001 From: Sebastian Riedel Date: Thu, 14 Dec 2017 23:19:55 +0100 Subject: [PATCH 2/6] Fix checking for needed libraries --- gbm.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gbm.sh b/gbm.sh index 2cd889c..8cf061e 100755 --- a/gbm.sh +++ b/gbm.sh @@ -1,8 +1,11 @@ #!/bin/sh -e #check for all dependencies -for prog in {mono,readlink,df,7za,libsqlite3};do +for prog in {mono,readlink,df,7za};do [ -n "`whereis -b ${prog} | cut -sd' ' -f2`" ] || (echo "Please install ${prog}" && exit 1); done +for lib in libsqlite3;do + [ -n "`ldconfig -p | grep ${lib}`" ] || (echo "Please install ${lib}" && exit 1); +done DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"; echo "Located in ${DIR}"; GBMPATH='./'; From aacda9eeb9dde1cbf385af6781ce982fc06dd675 Mon Sep 17 00:00:00 2001 From: Sebastian Riedel Date: Fri, 15 Dec 2017 01:20:10 +0100 Subject: [PATCH 3/6] Use changeable paths --- makefile | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/makefile b/makefile index 54806db..85b6a14 100644 --- a/makefile +++ b/makefile @@ -1,34 +1,38 @@ ICONSIZES := 16 24 32 48 64 72 96 128 256 IMGMAGICK := $(shell command -v convert 2> /dev/null) -XDGUTILS := $(shell command -v xdg-desktop-menu 2> /dev/null) +DESTDIR := / +PREFIX := /usr/local define \n endef install: GBM.exe $(foreach size,$(ICONSIZES),gbm_$(size)x$(size).png) -ifndef XDGUTILS - $(error "xdg-desktop-menu is not available, please install xdg-utils") -endif #rename it in a way, it can easily started from terminal - install gbm.sh /usr/local/bin/gbm; - install -d /usr/local/share/gbm; - install GBM.exe /usr/local/share/gbm/; + install -d $(DESTDIR)$(PREFIX)/bin; + install gbm.sh $(DESTDIR)$(PREFIX)/bin/gbm; + install -d $(DESTDIR)$(PREFIX)/share/gbm/; + install GBM.exe $(DESTDIR)$(PREFIX)/share/gbm/; #install icon in different sizes - $(foreach size,$(ICONSIZES),xdg-icon-resource install --mode system --novendor --noupdate --size $(size) gbm_$(size)x$(size).png gbm;$(\n)) - xdg-icon-resource forceupdate --mode system; + $(foreach size,$(ICONSIZES),install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/$(size)x$(size)/apps/;$(\n)) + $(foreach size,$(ICONSIZES),install -m644 gbm_$(size)x$(size).png $(DESTDIR)$(PREFIX)/share/icons/hicolor/$(size)x$(size)/apps/gbm.png;$(\n)) #install .desktop file, which is used for running gbm from desktop and menus - xdg-desktop-menu install --mode system --novendor gbm.desktop; - -uninstall: /usr/local/bin/gbm -ifndef XDGUTILS - $(error "xdg-desktop-menu is not available, please install xdg-utils") + install -d $(DESTDIR)$(PREFIX)/share/applications/ + install -m644 gbm.desktop $(DESTDIR)$(PREFIX)/share/applications/gbm.desktop +ifeq ($(DESTDIR),/) + -xdg-icon-resource forceupdate --mode system; + -xdg-desktop-menu forceupdate --mode system; +endif + +uninstall: $(DESTDIR)$(PREFIX)/bin/gbm + -rm $(DESTDIR)$(PREFIX)/bin/gbm; + -rm -r $(DESTDIR)$(PREFIX)/share/gbm/; + $(foreach size,$(ICONSIZES),-rm $(DESTDIR)$(PREFIX)/share/icons/hicolor/$(size)x$(size)/apps/gbm.png;$(\n)) + -rm $(DESTDIR)$(PREFIX)/share/applications/gbm.desktop +ifeq ($(DESTDIR),/) + -xdg-icon-resource forceupdate --mode system; + -xdg-desktop-menu forceupdate --mode system; endif - rm /usr/local/bin/gbm; - rm -r /usr/local/share/gbm/; - $(foreach size,$(ICONSIZES),xdg-icon-resource uninstall --mode system --novendor --noupdate --size $(size) gbm;$(\n)) - xdg-icon-resource forceupdate --mode system; - xdg-desktop-menu uninstall --mode system --novendor gbm.desktop; gbm_%.png: gbm.ico ifndef IMGMAGICK From 35cb711ca162bf075717aae03971bdcb9a2c453d Mon Sep 17 00:00:00 2001 From: Sebastian Riedel Date: Mon, 18 Dec 2017 21:14:41 +0100 Subject: [PATCH 4/6] Remove BASHisms from start script --- gbm.sh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/gbm.sh b/gbm.sh index 8cf061e..1e9e8e4 100755 --- a/gbm.sh +++ b/gbm.sh @@ -1,23 +1,22 @@ #!/bin/sh -e #check for all dependencies -for prog in {mono,readlink,df,7za};do +for prog in mono readlink df 7za;do [ -n "`whereis -b ${prog} | cut -sd' ' -f2`" ] || (echo "Please install ${prog}" && exit 1); done for lib in libsqlite3;do [ -n "`ldconfig -p | grep ${lib}`" ] || (echo "Please install ${lib}" && exit 1); done -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"; +DIR="$( cd "$( dirname "$(pwd)/$0" )" && pwd )"; echo "Located in ${DIR}"; GBMPATH='./'; #locate GBM.exe -if [ \( "${DIR}" == '/bin' \) -a \( -s '/usr/share/gbm/GBM.exe' \) ]; then +if [ "${DIR}" = '/bin' ] && [ -s '/usr/share/gbm/GBM.exe' ]; then GBMPATH='/usr/share/gbm/'; -elif [ \( "${DIR}" == '/usr/local/bin' \) -a \( -s '/usr/local/share/gbm/GBM.exe' \) ]; then +elif [ "${DIR}" = '/usr/local/bin' ] && [ -s '/usr/local/share/gbm/GBM.exe' ]; then GBMPATH='/usr/local/share/gbm/'; elif [ ! -s './GBM.exe' ]; then echo 'GBM.exe not found'; exit 2; fi mono --desktop ${GBMPATH}'GBM.exe' "$@"; -exit 0; - +exit $?; From 0779132be9949790463b855edbf96ec282c04642 Mon Sep 17 00:00:00 2001 From: Sebastian Riedel Date: Mon, 18 Dec 2017 21:25:03 +0100 Subject: [PATCH 5/6] Avoid wrong paths --- makefile | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/makefile b/makefile index 85b6a14..7e20ced 100644 --- a/makefile +++ b/makefile @@ -1,7 +1,7 @@ ICONSIZES := 16 24 32 48 64 72 96 128 256 IMGMAGICK := $(shell command -v convert 2> /dev/null) -DESTDIR := / -PREFIX := /usr/local +DESTDIR := +PREFIX := usr/local define \n @@ -9,27 +9,27 @@ endef install: GBM.exe $(foreach size,$(ICONSIZES),gbm_$(size)x$(size).png) #rename it in a way, it can easily started from terminal - install -d $(DESTDIR)$(PREFIX)/bin; - install gbm.sh $(DESTDIR)$(PREFIX)/bin/gbm; - install -d $(DESTDIR)$(PREFIX)/share/gbm/; - install GBM.exe $(DESTDIR)$(PREFIX)/share/gbm/; + install -d $(DESTDIR)/$(PREFIX)/bin; + install gbm.sh $(DESTDIR)/$(PREFIX)/bin/gbm; + install -d $(DESTDIR)/$(PREFIX)/share/gbm/; + install GBM.exe $(DESTDIR)/$(PREFIX)/share/gbm/; #install icon in different sizes - $(foreach size,$(ICONSIZES),install -d $(DESTDIR)$(PREFIX)/share/icons/hicolor/$(size)x$(size)/apps/;$(\n)) - $(foreach size,$(ICONSIZES),install -m644 gbm_$(size)x$(size).png $(DESTDIR)$(PREFIX)/share/icons/hicolor/$(size)x$(size)/apps/gbm.png;$(\n)) + $(foreach size,$(ICONSIZES),install -d $(DESTDIR)/$(PREFIX)/share/icons/hicolor/$(size)x$(size)/apps/;$(\n)) + $(foreach size,$(ICONSIZES),install -m644 gbm_$(size)x$(size).png $(DESTDIR)/$(PREFIX)/share/icons/hicolor/$(size)x$(size)/apps/gbm.png;$(\n)) #install .desktop file, which is used for running gbm from desktop and menus - install -d $(DESTDIR)$(PREFIX)/share/applications/ - install -m644 gbm.desktop $(DESTDIR)$(PREFIX)/share/applications/gbm.desktop -ifeq ($(DESTDIR),/) + install -d $(DESTDIR)/$(PREFIX)/share/applications/ + install -m644 gbm.desktop $(DESTDIR)/$(PREFIX)/share/applications/gbm.desktop +ifeq ($(DESTDIR),) -xdg-icon-resource forceupdate --mode system; -xdg-desktop-menu forceupdate --mode system; endif -uninstall: $(DESTDIR)$(PREFIX)/bin/gbm - -rm $(DESTDIR)$(PREFIX)/bin/gbm; - -rm -r $(DESTDIR)$(PREFIX)/share/gbm/; - $(foreach size,$(ICONSIZES),-rm $(DESTDIR)$(PREFIX)/share/icons/hicolor/$(size)x$(size)/apps/gbm.png;$(\n)) - -rm $(DESTDIR)$(PREFIX)/share/applications/gbm.desktop -ifeq ($(DESTDIR),/) +uninstall: $(DESTDIR)/$(PREFIX)/bin/gbm + -rm $(DESTDIR)/$(PREFIX)/bin/gbm; + -rm -r $(DESTDIR)/$(PREFIX)/share/gbm/; + $(foreach size,$(ICONSIZES),-rm $(DESTDIR)/$(PREFIX)/share/icons/hicolor/$(size)x$(size)/apps/gbm.png;$(\n)) + -rm $(DESTDIR)/$(PREFIX)/share/applications/gbm.desktop +ifeq ($(DESTDIR),) -xdg-icon-resource forceupdate --mode system; -xdg-desktop-menu forceupdate --mode system; endif From 3c72799ceb7d093cdd82684037a9d7306fec4b3f Mon Sep 17 00:00:00 2001 From: Sebastian Riedel Date: Mon, 18 Dec 2017 22:36:35 +0100 Subject: [PATCH 6/6] Fix script path detection --- gbm.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gbm.sh b/gbm.sh index 1e9e8e4..5794da7 100755 --- a/gbm.sh +++ b/gbm.sh @@ -6,17 +6,17 @@ done for lib in libsqlite3;do [ -n "`ldconfig -p | grep ${lib}`" ] || (echo "Please install ${lib}" && exit 1); done -DIR="$( cd "$( dirname "$(pwd)/$0" )" && pwd )"; -echo "Located in ${DIR}"; -GBMPATH='./'; +dir="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)" +echo "Located in ${dir}"; +gbmpath='./'; #locate GBM.exe -if [ "${DIR}" = '/bin' ] && [ -s '/usr/share/gbm/GBM.exe' ]; then - GBMPATH='/usr/share/gbm/'; -elif [ "${DIR}" = '/usr/local/bin' ] && [ -s '/usr/local/share/gbm/GBM.exe' ]; then - GBMPATH='/usr/local/share/gbm/'; +if [ "${dir}" = '/bin' ] && [ -s '/usr/share/gbm/GBM.exe' ]; then + gbmpath='/usr/share/gbm/'; +elif [ "${dir}" = '/usr/local/bin' ] && [ -s '/usr/local/share/gbm/GBM.exe' ]; then + gbmpath='/usr/local/share/gbm/'; elif [ ! -s './GBM.exe' ]; then echo 'GBM.exe not found'; exit 2; fi -mono --desktop ${GBMPATH}'GBM.exe' "$@"; +mono --desktop ${gbmpath}'GBM.exe' "$@"; exit $?;