From a8fb90d97cb8b8f76129002d41ae1cb4504ee206 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Sun, 8 Apr 2018 19:56:01 +0000 Subject: [PATCH] Simplify mime type handling. --- Makefile | 31 +++++++------------ .../linux/openra-join-servers.desktop.in | 13 -------- packaging/linux/openra-mimeinfo.xml.in | 22 +++---------- packaging/linux/openra.desktop.in | 3 +- packaging/linux/openra.in | 10 +++++- 5 files changed, 27 insertions(+), 52 deletions(-) delete mode 100755 packaging/linux/openra-join-servers.desktop.in diff --git a/Makefile b/Makefile index b34ad1e63c..1a0b4c498d 100644 --- a/Makefile +++ b/Makefile @@ -395,18 +395,12 @@ install-linux-desktop: install-linux-mime: @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/mime/packages/" - - @sed 's/{MOD}/ra/g' packaging/linux/openra-mimeinfo.xml.in | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-mimeinfo.xml - @$(INSTALL_DATA) packaging/linux/openra-mimeinfo.xml "$(DESTDIR)$(datadir)/mime/packages/openra.xml" - - @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/applications" - @sed 's/{MOD}/ra/g' packaging/linux/openra-join-servers.desktop.in | sed 's/{MODNAME}/Red Alert/g' | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-ra-join-servers.desktop - @$(INSTALL_DATA) packaging/linux/openra-ra-join-servers.desktop "$(DESTDIR)$(datadir)/applications" - @sed 's/{MOD}/cnc/g' packaging/linux/openra-join-servers.desktop.in | sed 's/{MODNAME}/Tiberian Dawn/g' | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-cnc-join-servers.desktop - @$(INSTALL_DATA) packaging/linux/openra-cnc-join-servers.desktop "$(DESTDIR)$(datadir)/applications" - @sed 's/{MOD}/d2k/g' packaging/linux/openra-join-servers.desktop.in | sed 's/{MODNAME}/Dune 2000/g' | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-d2k-join-servers.desktop - @$(INSTALL_DATA) packaging/linux/openra-d2k-join-servers.desktop "$(DESTDIR)$(datadir)/applications" - @-$(RM) packaging/linux/openra-mimeinfo.xml packaging/linux/openra-ra-join-servers.desktop packaging/linux/openra-cnc-join-servers.desktop packaging/linux/openra-d2k-join-servers.desktop + @sed 's/{MODID}/ra/g' packaging/linux/openra-mimeinfo.xml.in | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-mimeinfo.xml + @$(INSTALL_DATA) packaging/linux/openra-mimeinfo.xml "$(DESTDIR)$(datadir)/mime/packages/openra-ra.xml" + @sed 's/{MODID}/cnc/g' packaging/linux/openra-mimeinfo.xml.in | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-mimeinfo.xml + @$(INSTALL_DATA) packaging/linux/openra-mimeinfo.xml "$(DESTDIR)$(datadir)/mime/packages/openra-cnc.xml" + @sed 's/{MODID}/d2k/g' packaging/linux/openra-mimeinfo.xml.in | sed 's/{TAG}/$(VERSION)/g' > packaging/linux/openra-mimeinfo.xml + @$(INSTALL_DATA) packaging/linux/openra-mimeinfo.xml "$(DESTDIR)$(datadir)/mime/packages/openra-d2k.xml" install-linux-appdata: @$(INSTALL_DIR) "$(DESTDIR)$(datadir)/appdata/" @@ -431,9 +425,9 @@ else @sed 's/{DEBUG}/--debug/' packaging/linux/openra-server.in | sed 's|{GAME_INSTALL_DIR}|$(gameinstalldir)|' | sed 's|{BIN_DIR}|$(bindir)|' > packaging/linux/openra-server.debug.in endif - @sed 's/{MOD}/ra/g' packaging/linux/openra.debug.in | sed 's/{MODNAME}/Red Alert/g' > packaging/linux/openra-ra - @sed 's/{MOD}/cnc/g' packaging/linux/openra.debug.in | sed 's/{MODNAME}/Tiberian Dawn/g' > packaging/linux/openra-cnc - @sed 's/{MOD}/d2k/g' packaging/linux/openra.debug.in | sed 's/{MODNAME}/Dune 2000/g' > packaging/linux/openra-d2k + @sed 's/{MODID}/ra/g' packaging/linux/openra.debug.in | sed 's/{TAG}/$(VERSION)/g' | sed 's/{MODNAME}/Red Alert/g' > packaging/linux/openra-ra + @sed 's/{MODID}/cnc/g' packaging/linux/openra.debug.in | sed 's/{TAG}/$(VERSION)/g' | sed 's/{MODNAME}/Tiberian Dawn/g' > packaging/linux/openra-cnc + @sed 's/{MODID}/d2k/g' packaging/linux/openra.debug.in | sed 's/{TAG}/$(VERSION)/g' | sed 's/{MODNAME}/Dune 2000/g' > packaging/linux/openra-d2k @$(INSTALL_DIR) "$(BIN_INSTALL_DIR)" @$(INSTALL_PROGRAM) -m +rx packaging/linux/openra-ra "$(BIN_INSTALL_DIR)" @@ -462,9 +456,6 @@ uninstall: @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-ra.desktop" @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-cnc.desktop" @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-d2k.desktop" - @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-ra-join-servers.desktop" - @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-cnc-join-servers.desktop" - @-$(RM_F) "$(DESTDIR)$(datadir)/applications/openra-d2k-join-servers.desktop" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/16x16/apps/openra-ra.png" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/32x32/apps/openra-ra.png" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/openra-ra.png" @@ -480,7 +471,9 @@ uninstall: @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/48x48/apps/openra-d2k.png" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/64x64/apps/openra-d2k.png" @-$(RM_F) "$(DESTDIR)$(datadir)/icons/hicolor/128x128/apps/openra-d2k.png" - @-$(RM_F) "$(DESTDIR)$(datadir)/mime/packages/openra.xml" + @-$(RM_F) "$(DESTDIR)$(datadir)/mime/packages/openra-ra.xml" + @-$(RM_F) "$(DESTDIR)$(datadir)/mime/packages/openra-cnc.xml" + @-$(RM_F) "$(DESTDIR)$(datadir)/mime/packages/openra-d2k.xml" @-$(RM_F) "$(DESTDIR)$(datadir)/appdata/openra.appdata.xml" @-$(RM_F) "$(DESTDIR)$(mandir)/man6/openra.6" diff --git a/packaging/linux/openra-join-servers.desktop.in b/packaging/linux/openra-join-servers.desktop.in deleted file mode 100755 index bf3c544ff9..0000000000 --- a/packaging/linux/openra-join-servers.desktop.in +++ /dev/null @@ -1,13 +0,0 @@ -[Desktop Entry] -Type=Application -Version=1.0 -Name=OpenRA - {MODNAME} -GenericName=Real Time Strategy Game -GenericName[de]=Echtzeit-Strategiespiel -Comment=Reimagining of early Westwood Games -Icon=openra-{MOD} -Exec=openra-{MOD} Launch.URI=%U -Terminal=false -NoDisplay=true -Categories=Game;StrategyGame; -MimeType=x-scheme-handler/openra-{MOD}-{TAG}; \ No newline at end of file diff --git a/packaging/linux/openra-mimeinfo.xml.in b/packaging/linux/openra-mimeinfo.xml.in index 3964390353..f4b7e37805 100644 --- a/packaging/linux/openra-mimeinfo.xml.in +++ b/packaging/linux/openra-mimeinfo.xml.in @@ -1,23 +1,9 @@ - - - + + - OpenRA connect to server scheme - + Join OpenRA server + - - - - OpenRA connect to server scheme - - - - - - OpenRA connect to server scheme - - - diff --git a/packaging/linux/openra.desktop.in b/packaging/linux/openra.desktop.in index 3d17dec974..87b7b6bbba 100644 --- a/packaging/linux/openra.desktop.in +++ b/packaging/linux/openra.desktop.in @@ -6,6 +6,7 @@ GenericName=Real Time Strategy Game GenericName[de]=Echtzeit-Strategiespiel Comment=Reimagining of early Westwood Games Icon=openra-{MOD} -Exec=openra-{MOD} +Exec=openra-{MOD} %U Terminal=false Categories=Game;StrategyGame; +MimeType=x-scheme-handler/openra-{MOD}-{TAG}; diff --git a/packaging/linux/openra.in b/packaging/linux/openra.in index f8216adc81..3ab38fa596 100755 --- a/packaging/linux/openra.in +++ b/packaging/linux/openra.in @@ -1,7 +1,15 @@ #!/bin/sh cd "{GAME_INSTALL_DIR}" -mono {DEBUG} OpenRA.Game.exe Game.Mod={MOD} Engine.LaunchPath="{BIN_DIR}/openra-{MOD}" "$@" +# Search for server connection +PROTOCOL_PREFIX="openra-{MODID}-{TAG}://" +JOIN_SERVER="" +if [ "${1#${PROTOCOL_PREFIX}}" != "${1}" ]; then + JOIN_SERVER="Launch.Connect=${1#${PROTOCOL_PREFIX}}" +fi + +# Run the game +mono {DEBUG} OpenRA.Game.exe Game.Mod={MODID} Engine.LaunchPath="{BIN_DIR}/openra-{MODID}" "${JOIN_SERVER}" "$@" # Show a crash dialog if required if [ $? != 0 ] && [ $? != 1 ]