From 42c654bb00c541e29cd4e550fa88e4ee2c86c6f4 Mon Sep 17 00:00:00 2001 From: debuggerx Date: Fri, 28 Jan 2022 17:13:48 +0800 Subject: [PATCH] feat: deb build script for uos. --- app/.gitignore | 2 ++ app/build_deb.sh | 35 ++++++++++++++++++++++ .../com.debuggerx.dde-gesture-manager.desktop | 10 +++++++ app/dde_package_info/info | 17 +++++++++++ app/debian/changelog | 0 app/debian/control | 13 ++++++++ app/pubspec.yaml | 1 + app/version.dart | 8 +++++ 8 files changed, 86 insertions(+) create mode 100755 app/build_deb.sh create mode 100644 app/dde_package_info/entries/applications/com.debuggerx.dde-gesture-manager.desktop create mode 100644 app/dde_package_info/info create mode 100644 app/debian/changelog create mode 100644 app/debian/control create mode 100644 app/version.dart diff --git a/app/.gitignore b/app/.gitignore index 6d47c6f..f722bdf 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -45,3 +45,5 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release + +/deb_builder/ diff --git a/app/build_deb.sh b/app/build_deb.sh new file mode 100755 index 0000000..b9f0faa --- /dev/null +++ b/app/build_deb.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash + +VERSION=$(dart version.dart) + +flutter clean +flutter build linux + +if [ -e deb_builder ]; then + rm -rf deb_builder +fi + +mkdir "deb_builder" + +cp -r debian deb_builder/DEBIAN +cp ../LICENSE deb_builder/DEBIAN/copyright + +echo Version: "$VERSION" >> deb_builder/DEBIAN/control + +mkdir -p deb_builder/opt/apps/com.debuggerx.dde-gesture-manager/ + +cp -r build/linux/x64/release/bundle deb_builder/opt/apps/com.debuggerx.dde-gesture-manager/files + +cp -r dde_package_info/* deb_builder/opt/apps/com.debuggerx.dde-gesture-manager/ + +mkdir -p deb_builder/opt/apps/com.debuggerx.dde-gesture-manager/entries/icons/hicolor/scalable/apps/ + +cp web/icons/Icon-512.png deb_builder/opt/apps/com.debuggerx.dde-gesture-manager/entries/icons/hicolor/scalable/apps/dgm.png + +sed -i "s/VERSION/$VERSION/g" deb_builder/opt/apps/com.debuggerx.dde-gesture-manager/info + +sed -i "s/VERSION/$VERSION/g" deb_builder/opt/apps/com.debuggerx.dde-gesture-manager/entries/applications/com.debuggerx.dde-gesture-manager.desktop + +dpkg-deb -b deb_builder + +mv deb_builder.deb dgm-"$VERSION"_x64.deb diff --git a/app/dde_package_info/entries/applications/com.debuggerx.dde-gesture-manager.desktop b/app/dde_package_info/entries/applications/com.debuggerx.dde-gesture-manager.desktop new file mode 100644 index 0000000..731538c --- /dev/null +++ b/app/dde_package_info/entries/applications/com.debuggerx.dde-gesture-manager.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Categories=Utility; +Comment=专为 DDE 桌面环境打造的触摸板手势管理工具(缩写:dgm),使用 Flutter 构建。 +Exec=/opt/apps/com.debuggerx.dde-gesture-manager/files/dde-gesture-manager +Icon=dgm +Name=DDE Gesture Manager +Name[zh_CN]=DDE手势管理器 +Type=Application +Version=VERSION +X-Deepin-Vendor=user-custom diff --git a/app/dde_package_info/info b/app/dde_package_info/info new file mode 100644 index 0000000..1ed962f --- /dev/null +++ b/app/dde_package_info/info @@ -0,0 +1,17 @@ +{ + "appid": "com.debuggerx.dde-gesture-manager", + "name": "dde-gesture-manager", + "version": "VERSION", + "arch": ["amd64"], + "permissions": { + "autostart": true, + "notification": true, + "trayicon": false, + "clipboard": true, + "account": false, + "bluetooth": false, + "camera": false, + "audio_record": false, + "installed_apps": false + } +} diff --git a/app/debian/changelog b/app/debian/changelog new file mode 100644 index 0000000..e69de29 diff --git a/app/debian/control b/app/debian/control new file mode 100644 index 0000000..c43c09c --- /dev/null +++ b/app/debian/control @@ -0,0 +1,13 @@ +Source: dde-gesture-manager +Section: utils +Priority: optional +Maintainer: DebuggerX +Build-Depends: + clang, + cmake, + libgtk-3-dev, + ninja-build, +Homepage: https://github.com/debuggerx01/dde_gesture_manager +Package: dde-gesture-manager +Architecture: amd64 +Description: 专为 DDE 桌面环境打造的触摸板手势管理工具(缩写:dgm),使用 Flutter 构建。 diff --git a/app/pubspec.yaml b/app/pubspec.yaml index 09381ad..6b7f990 100644 --- a/app/pubspec.yaml +++ b/app/pubspec.yaml @@ -57,6 +57,7 @@ dev_dependencies: sdk: flutter build_runner: 2.1.7 source_gen: 1.2.1 + yaml: any # For information on the generic Dart part of this file, see the diff --git a/app/version.dart b/app/version.dart new file mode 100644 index 0000000..1ddf4e9 --- /dev/null +++ b/app/version.dart @@ -0,0 +1,8 @@ +import 'dart:io'; + +import 'package:yaml/yaml.dart'; + +void main() async { + var document = loadYaml(File('pubspec.yaml').readAsStringSync()); + print(document['version'].replaceAll('+', '.')); +}