summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorChristian Persch <chpe@src.gnome.org>2022-11-16 20:09:45 +0100
committerChristian Persch <chpe@src.gnome.org>2022-11-16 20:09:45 +0100
commit4eb993cb977eb7ea2802d16f34c8e8801e37050b (patch)
tree300802b06c7f3fc67899ffb5b12cbbae2f34a92a /data
parent069b76eb592d318881d5eeab4ec8ce0d1236f651 (diff)
downloadgnome-terminal-4eb993cb977eb7ea2802d16f34c8e8801e37050b.tar.gz
build: Validate all desktop files
Diffstat (limited to 'data')
-rw-r--r--data/meson.build1
-rwxr-xr-xdata/meson_desktopfile.py25
2 files changed, 22 insertions, 4 deletions
diff --git a/data/meson.build b/data/meson.build
index cb4c4f64..f2572df4 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -69,6 +69,7 @@ meson.add_install_script(
'meson_desktopfile.py',
desktopdatadir,
gt_dns_name + '.desktop',
+ gt_dns_name + '.Preferences.desktop',
)
# Install a symlink for xdg-terminal-exec
diff --git a/data/meson_desktopfile.py b/data/meson_desktopfile.py
index ced926f1..f052a6b9 100755
--- a/data/meson_desktopfile.py
+++ b/data/meson_desktopfile.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# Copyright © 2019 Christian Persch
+# Copyright © 2019, 2022 Christian Persch
#
# This programme is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -21,8 +21,25 @@ import sys
if os.environ.get('DESTDIR'):
sys.exit(0)
+argc = len(sys.argv)
+if argc < 3:
+ sys.exit(1)
+
prefix = os.environ['MESON_INSTALL_PREFIX']
-desktopfile = os.path.join(prefix, sys.argv[1], sys.argv[2])
+desktopdatadir = sys.argv[1]
+
+exit_code = 0
+
+for i in range(2, argc):
+ try:
+ desktopfile = os.path.join(prefix, desktopdatadir, sys.argv[i])
+ result = subprocess.run(['desktop-file-validate',
+ desktopfile])
+ if result.returncode != 0:
+ exit_code = 1
+
+ except FileNotFoundError:
+ # desktop-file-validate not installed
+ pass
-rv = subprocess.call(['desktop-file-validate', desktopfile])
-sys.exit(rv)
+sys.exit(exit_code)