From 421eae01b20af4f8b693e9b17bd549086ed29c05 Mon Sep 17 00:00:00 2001
From: Akira Ohgaki <akiraohgaki@gmail.com>
Date: Tue, 7 Feb 2017 22:36:56 +0900
Subject: [PATCH] Add Snap packaging support

---
 pkg/build.sh                      | 17 ++++++++++++-
 pkg/snap/setup/gui/xdgurl.desktop |  9 +++++++
 pkg/snap/snapcraft.yaml           | 40 +++++++++++++++++++++++++++++++
 xdgurl.pro                        |  2 ++
 4 files changed, 67 insertions(+), 1 deletion(-)
 create mode 100644 pkg/snap/setup/gui/xdgurl.desktop
 create mode 100644 pkg/snap/snapcraft.yaml

diff --git a/pkg/build.sh b/pkg/build.sh
index ce4a22f..c86a7cb 100644
--- a/pkg/build.sh
+++ b/pkg/build.sh
@@ -66,6 +66,19 @@ build_arch() {
     makepkg -s
 }
 
+build_snap() {
+    #sudo apt install build-essential qt5-default libqt5svg5-dev qtdeclarative5-dev snapcraft
+
+    cd "${PROJDIR}"
+
+    mkdir -p "${BUILDDIR}"
+    export_source "${BUILDDIR}"
+    tar -xzvf "${BUILDDIR}/${PKGNAME}.tar.gz" -C "${BUILDDIR}"
+
+    cd "${BUILDDIR}/${PKGNAME}/pkg/snap"
+    snapcraft
+}
+
 build_appimage() {
     #sudo add-apt-repository ppa:beineri/opt-qt57-xenial
     #sudo apt update
@@ -114,8 +127,10 @@ elif [ "${BUILDTYPE}" = 'fedora' ]; then
     build_fedora
 elif [ "${BUILDTYPE}" = 'arch' ]; then
     build_arch
+elif [ "${BUILDTYPE}" = 'snap' ]; then
+    build_snap
 elif [ "${BUILDTYPE}" = 'appimage' ]; then
     build_appimage
 else
-    echo "sh $(basename "${0}") [ubuntu|fedora|arch|appimage] [tree_ish]"
+    echo "sh $(basename "${0}") [ubuntu|fedora|arch|snap|appimage] [tree_ish]"
 fi
diff --git a/pkg/snap/setup/gui/xdgurl.desktop b/pkg/snap/setup/gui/xdgurl.desktop
new file mode 100644
index 0000000..d541072
--- /dev/null
+++ b/pkg/snap/setup/gui/xdgurl.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=xdgurl
+Exec=xdgurl.xdgurl %u
+Icon=${SNAP}/usr/share/icons/hicolor/scalable/apps/xdgurl.svg
+Type=Application
+Terminal=false
+NoDisplay=true
+Categories=Network;Utility;
+MimeType=x-scheme-handler/xdg;x-scheme-handler/xdgs;
diff --git a/pkg/snap/snapcraft.yaml b/pkg/snap/snapcraft.yaml
new file mode 100644
index 0000000..e4c6b00
--- /dev/null
+++ b/pkg/snap/snapcraft.yaml
@@ -0,0 +1,40 @@
+name: xdgurl
+version: '2.0.3'
+summary: An install helper program for desktop stuff
+description: |
+  An install helper program for desktop stuff.
+
+grade: devel
+confinement: strict
+
+#icon: ../../src/desktop/xdgurl.svg
+
+parts:
+  xdgurl:
+    plugin: qmake
+    source: ../../
+    qt-version: qt5
+    options:
+      - PREFIX='/usr'
+    build-packages:
+      - build-essential
+      - qt5-default
+      - libqt5svg5-dev
+      - qtdeclarative5-dev
+      - snapcraft
+    stage-packages:
+      - libqt5svg5
+      - qml-module-qtquick-controls
+      - qml-module-qtquick-dialogs
+    after:
+      - desktop-qt5
+
+apps:
+  xdgurl:
+    command: usr/bin/xdgurl
+    plugs:
+      - home
+      - network
+      - opengl
+      - x11
+      - unity7
diff --git a/xdgurl.pro b/xdgurl.pro
index a26d2d5..a232669 100644
--- a/xdgurl.pro
+++ b/xdgurl.pro
@@ -20,6 +20,8 @@ DISTFILES += \
     pkg/ubuntu/debian/xdgurl.install \
     pkg/fedora/xdgurl.spec \
     pkg/arch/PKGBUILD \
+    pkg/snap/snapcraft.yaml \
+    pkg/snap/setup/gui/xdgurl.desktop \
     pkg/appimage/appimage-desktopintegration
 
 include(deployment.pri)
-- 
GitLab