[game-data-packager] 01/01: Grim Fandango: add Scythe icon, own work

Alexandre Detiste detiste-guest at moszumanska.debian.org
Sun Jul 19 13:10:25 UTC 2015


This is an automated email from the git hooks/post-receive script.

detiste-guest pushed a commit to branch master
in repository game-data-packager.

commit d9748cda4957c306e9bbd784ae01c90047823031
Author: Alexandre Detiste <alexandre.detiste at gmail.com>
Date:   Sun Jul 19 15:08:27 2015 +0200

    Grim Fandango: add Scythe icon, own work
---
 data/grimfandango.svg                         | 105 ++++++++++++++++++++++++++
 data/residualvm-common.desktop.in             |   9 ---
 game_data_packager/games/residualvm_common.py |  70 ++++++++++++-----
 3 files changed, 156 insertions(+), 28 deletions(-)

diff --git a/data/grimfandango.svg b/data/grimfandango.svg
new file mode 100644
index 0000000..4e6b25c
--- /dev/null
+++ b/data/grimfandango.svg
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="64"
+   height="64"
+   id="svg4152"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   viewBox="0 0 64 64"
+   sodipodi:docname="grimfandango.svg">
+  <defs
+     id="defs4154">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient4727">
+      <stop
+         style="stop-color:#cccccc;stop-opacity:1;"
+         offset="0"
+         id="stop4729" />
+      <stop
+         style="stop-color:#cccccc;stop-opacity:0;"
+         offset="1"
+         id="stop4731" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4727"
+       id="linearGradient4733"
+       x1="12.609982"
+       y1="13.338818"
+       x2="42.596689"
+       y2="13.338818"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="15.556349"
+     inkscape:cx="43.062575"
+     inkscape:cy="50.941071"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="-3"
+     inkscape:window-y="-3"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata4157">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+        <dc:date>2015/07/19</dc:date>
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Alexandre Detiste</dc:title>
+          </cc:Agent>
+        </dc:creator>
+        <cc:license
+           rdf:resource="http://www.gnu.org/licenses/gpl-2.0" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 24.636364,60.636364 C 21.883369,50.30618 18.456028,42.577015 18.112573,34.654593 17.424749,24.917579 16.427411,16.269304 11.090909,9.1818182"
+       id="path4721"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 16.363636,18.454545 C 24.134088,14.20939 34.687443,13.049174 44.818181,11.636363 37.711391,8.7024253 27.719932,7.3710814 11.909091,9.2727273"
+       id="path4723"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccc" />
+    <path
+       style="opacity:0.73999993;fill:url(#linearGradient4733);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.18181819;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="m 16.524244,17.57966 c -0.837976,-2.540449 -2.123058,-5.306245 -3.37378,-7.261163 l -0.385196,-0.6020733 0.92381,-0.1038194 c 1.701375,-0.1912034 4.995151,-0.452115 7.086277,-0.561329 2.351363,-0.1228055 8.843905,-0.06572 10.519352,0.092492 3.202934,0.3024513 5.601748,0.6918975 8.136363,1.3209347 1.586062,0.393627 3.322926,0.934949 3.045455,0.949167 -0.381483,0.01955 -7.389954,1.052886 -9.045455,1.333675 -6.793251,1.152201 -11.779994,2.549041 -15.580904,4.364378 -0.669497,0.319 [...]
+       id="path4725"
+       inkscape:connector-curvature="0" />
+  </g>
+</svg>
diff --git a/data/residualvm-common.desktop.in b/data/residualvm-common.desktop.in
deleted file mode 100644
index 6fd2e00..0000000
--- a/data/residualvm-common.desktop.in
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=LONG
-GenericName=Adventure Game
-TryExec=residualvm
-Exec=residualvm -p /PATH GAME
-Icon=residualvm
-Terminal=false
-Type=Application
-Categories=Game
diff --git a/game_data_packager/games/residualvm_common.py b/game_data_packager/games/residualvm_common.py
index ec4c6b5..a67e45b 100644
--- a/game_data_packager/games/residualvm_common.py
+++ b/game_data_packager/games/residualvm_common.py
@@ -16,15 +16,20 @@
 # You can find the GPL license text on a Debian system under
 # /usr/share/common-licenses/GPL-2.
 
+import configparser
 import logging
 import os
+import subprocess
 
 from .. import GameData
 from ..paths import DATADIR
-from ..util import (TemporaryUmask, copy_with_substitutions, mkdir_p)
+from ..util import mkdir_p
 
 logger = logging.getLogger('game-data-packager.games.residualvm-common')
 
+def install_data(from_, to):
+    subprocess.check_call(['cp', '--reflink=auto', from_, to])
+
 class ResidualvmGameData(GameData):
     def __init__(self, shortname, data, workdir=None):
         super(ResidualvmGameData, self).__init__(shortname, data,
@@ -44,24 +49,51 @@ class ResidualvmGameData(GameData):
         if package.type == 'expansion':
             return
 
-        with TemporaryUmask(0o022):
-            appdir = os.path.join(destdir, 'usr/share/applications')
-            mkdir_p(appdir)
-            from_ = os.path.join(DATADIR, 'residualvm-common.desktop.in')
-            copy_with_substitutions(open(from_,
-                    encoding='utf-8'),
-                        open(os.path.join(appdir, '%s.desktop' % package.name),
-                            'w', encoding='utf-8'),
-                        GAME=self.gameid,
-                        PATH=package.install_to,
-                        LONG=(package.longname or self.longname))
+        icon = package.name
+        for from_ in (self.locate_steam_icon(package),
+                      os.path.join(DATADIR, package.name + '.png'),
+                      os.path.join(DATADIR, self.shortname + '.png'),
+                      os.path.join('/usr/share/pixmaps', icon + '.png'),
+                      os.path.join(DATADIR, self.shortname.strip('1234567890') + '.png')):
+            if from_ and os.path.exists(from_):
+                pixdir = os.path.join(destdir, 'usr/share/pixmaps')
+                mkdir_p(pixdir)
+                install_data(from_, os.path.join(pixdir, '%s.png' % icon))
+                break
+        else:
+            icon = 'residualvm'
+
+        from_ = os.path.splitext(from_)[0] + '.svgz'
+        if os.path.exists(from_):
+            svgdir = os.path.join(destdir, 'usr/share/icons/hicolor/scalable/apps')
+            mkdir_p(svgdir)
+            install_data(from_, os.path.join(svgdir, '%s.svgz' % icon))
+
+        appdir = os.path.join(destdir, 'usr/share/applications')
+        mkdir_p(appdir)
+
+        desktop = configparser.RawConfigParser()
+        desktop.optionxform = lambda option: option
+        desktop['Desktop Entry'] = {}
+        entry = desktop['Desktop Entry']
+        entry['Name'] = package.longname or self.longname
+        entry['GenericName'] = self.genre + ' Game'
+        entry['TryExec'] = 'residualvm'
+        entry['Icon'] = icon
+        entry['Terminal'] = 'false'
+        entry['Type'] = 'Application'
+        entry['Categories'] = 'Game'
+        entry['Exec'] = 'residualvm -p /%s %s' % (package.install_to, self.gameid)
+        with open(os.path.join(appdir, '%s.desktop' % package.name),
+                  'w', encoding='utf-8') as output:
+             desktop.write(output, space_around_delimiters=False)
 
-            lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
-            mkdir_p(lintiandir)
-            with open(os.path.join(lintiandir, package.name),
-                      'a', encoding='utf-8') as o:
-                 o.write('%s: desktop-command-not-in-package '
-                         'usr/share/applications/%s.desktop residualvm\n'
-                         % (package.name, package.name))
+        lintiandir = os.path.join(destdir, 'usr/share/lintian/overrides')
+        mkdir_p(lintiandir)
+        with open(os.path.join(lintiandir, package.name),
+                  'a', encoding='utf-8') as o:
+             o.write('%s: desktop-command-not-in-package '
+                     'usr/share/applications/%s.desktop residualvm\n'
+                     % (package.name, package.name))
 
 GAME_DATA_SUBCLASS = ResidualvmGameData

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/game-data-packager.git



More information about the Pkg-games-commits mailing list