From c46924c99645a2d9c27e2d3532d30ecf93882e2a Mon Sep 17 00:00:00 2001 From: Jagandeep Brar Date: Sat, 26 Nov 2022 18:28:26 -0500 Subject: [PATCH] feat(linux): include MD5 sums in Debian distributions --- ...otify-embed.js => notify_discord_embed.js} | 0 .github/workflows/notify.yml | 2 +- .gitignore | 5 +- debian/DEBIAN/control | 6 + debian/DEBIAN/postinst | 3 + debian/DEBIAN/postrm | 3 + debian/usr/share/applications/lunasea.desktop | 9 ++ debian/usr/share/icons/lunasea.png | Bin 0 -> 59732 bytes scripts/generate_debian.dart | 108 ++++++++---------- 9 files changed, 71 insertions(+), 65 deletions(-) rename .github/scripts/{notify-embed.js => notify_discord_embed.js} (100%) create mode 100644 debian/DEBIAN/control create mode 100755 debian/DEBIAN/postinst create mode 100755 debian/DEBIAN/postrm create mode 100644 debian/usr/share/applications/lunasea.desktop create mode 100644 debian/usr/share/icons/lunasea.png diff --git a/.github/scripts/notify-embed.js b/.github/scripts/notify_discord_embed.js similarity index 100% rename from .github/scripts/notify-embed.js rename to .github/scripts/notify_discord_embed.js diff --git a/.github/workflows/notify.yml b/.github/workflows/notify.yml index 2abd48d2..e5a6242d 100644 --- a/.github/workflows/notify.yml +++ b/.github/workflows/notify.yml @@ -58,7 +58,7 @@ jobs: BUILD_TITLE: ${{ inputs.build-title }} with: result-encoding: string - script: return require('.github/scripts/notify-embed.js')(); + script: return require('.github/scripts/notify_discord_embed.js')(); - name: Send Discord Message uses: Ilshidur/action-discord@0.3.2 diff --git a/.gitignore b/.gitignore index e60234ba..088b4a47 100644 --- a/.gitignore +++ b/.gitignore @@ -78,10 +78,13 @@ jspm_packages/ # Artifacts output/ -debian/ *.apk *.aab *.ipa *.dmg *.pkg + +# Linux Artifacts +debian/DEBIAN/md5sums +debian/usr/local/lib/LunaSea *.snap diff --git a/debian/DEBIAN/control b/debian/DEBIAN/control new file mode 100644 index 00000000..877e14c0 --- /dev/null +++ b/debian/DEBIAN/control @@ -0,0 +1,6 @@ +Package:LunaSea +Architecture:amd64 +Essential:no +Priority:optional +Maintainer:LunaSea Support +Description:Self-hosted software controller built using Flutter diff --git a/debian/DEBIAN/postinst b/debian/DEBIAN/postinst new file mode 100755 index 00000000..0526552c --- /dev/null +++ b/debian/DEBIAN/postinst @@ -0,0 +1,3 @@ +#!/bin/bash + +ln -sf '/usr/local/lib/LunaSea/lunasea' '/usr/local/bin/lunasea' diff --git a/debian/DEBIAN/postrm b/debian/DEBIAN/postrm new file mode 100755 index 00000000..7669b880 --- /dev/null +++ b/debian/DEBIAN/postrm @@ -0,0 +1,3 @@ +#!/bin/bash + +rm -f '/usr/local/bin/lunasea' diff --git a/debian/usr/share/applications/lunasea.desktop b/debian/usr/share/applications/lunasea.desktop new file mode 100644 index 00000000..dcf8053a --- /dev/null +++ b/debian/usr/share/applications/lunasea.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=LunaSea +Comment=Self-hosted software controller built using Flutter +Icon=/usr/share/icons/lunasea.png +Terminal=false +Type=Application +Categories=Utilities;Entertainment; +Exec=/usr/local/bin/lunasea +TryExec=/usr/local/bin/lunasea diff --git a/debian/usr/share/icons/lunasea.png b/debian/usr/share/icons/lunasea.png new file mode 100644 index 0000000000000000000000000000000000000000..2bcde2b219bed852cf88b1430c94a909f1f28aa7 GIT binary patch literal 59732 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%0A51&>$ViN9*$=9V|$;?+!z~_AD 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 D8mo3* literal 0 HcmV?d00001 diff --git a/scripts/generate_debian.dart b/scripts/generate_debian.dart index c1d941ac..d1f716fd 100644 --- a/scripts/generate_debian.dart +++ b/scripts/generate_debian.dart @@ -1,73 +1,55 @@ import 'dart:io'; void main(List args) { - _createSkeleton(); - - _generateControl(args[0]); - _generateDesktopEntry(); - _copyIcon(); + _setVersion(args[0]); _copyBuild(); - + _determineMD5Sums(); _buildDebian(); } -Future _createSkeleton() async { - if (Directory('debian').existsSync()) { - Directory('debian').deleteSync(recursive: true); - } - - Directory('debian/DEBIAN').createSync(recursive: true); - Directory('debian/usr/local/lib').createSync(recursive: true); - Directory('debian/usr/share/applications').createSync(recursive: true); - Directory('debian/usr/share/icons').createSync(recursive: true); -} - -void _generateControl(String version) { +void _setVersion(String version) { final control = File('debian/DEBIAN/control'); - - String data = ''; - data += 'Version:$version\n'; - data += 'Architecture:amd64\n'; - data += 'Package:LunaSea\n'; - data += 'Essential:no\n'; - data += 'Priority:optional\n'; - data += 'Maintainer:LunaSea Support \n'; - data += 'Description:Self-hosted software controller built using Flutter\n'; - - control.writeAsStringSync(data); -} - -void _generateDesktopEntry() { - final entry = File('debian/usr/share/applications/lunasea.desktop'); - - String data = ''; - data += '[Desktop Entry]\n'; - data += 'Name=LunaSea\n'; - data += 'Comment=Self-hosted software controller built using Flutter\n'; - data += 'Icon=/usr/share/icons/lunasea.png\n'; - data += 'Terminal=false\n'; - data += 'Type=Application\n'; - data += 'Categories=Utilities;Entertainment;\n'; - data += 'Exec=/usr/local/lib/LunaSea/lunasea\n'; - data += 'TryExec=/usr/local/lib/LunaSea/lunasea\n'; - - entry.writeAsStringSync(data); -} - -void _copyIcon() { - final icon = File('assets/icon/icon_linux.png'); - icon.copySync('debian/usr/share/icons/lunasea.png'); + control.writeAsStringSync('Version:$version\n', mode: FileMode.append); } void _copyBuild() { - Process.runSync( - 'cp', - ['-r', 'build/linux/x64/release/bundle', 'debian/usr/local/lib'], - ); - Process.runSync( - 'mv', - ['debian/usr/local/lib/bundle', 'debian/usr/local/lib/LunaSea'], - ); + const path = 'debian/usr/local/lib'; + + final directory = Directory(path); + if (directory.existsSync()) directory.deleteSync(recursive: true); + directory.createSync(recursive: true); + + Process.runSync('cp', [ + '-r', + 'build/linux/x64/release/bundle', + path, + ]); + Process.runSync('mv', [ + '$path/bundle', + '$path/LunaSea', + ]); +} + +void _determineMD5Sums() { + final find = Process.runSync( + 'find', + [".", "-type", "f", "-not", "-path", "'./DEBIAN/*'"], + workingDirectory: 'debian', + ).stdout as String; + + final files = find + .split('\n') + .where((file) => !file.startsWith('./DEBIAN')) + .map((file) => file.replaceAll('./', '')) + .toList(); + + final md5 = Process.runSync( + 'md5sum', + files, + workingDirectory: 'debian', + ).stdout as String; + + File('debian/DEBIAN/md5sums').writeAsStringSync(md5); } void _buildDebian() { @@ -75,10 +57,10 @@ void _buildDebian() { Directory('output').createSync(recursive: true); } - Process.runSync( - 'dpkg-deb', - ['--build', 'debian'], - ); + Process.runSync('dpkg-deb', [ + '--build', + 'debian', + ]); Process.runSync('mv', [ 'debian.deb', 'output/lunasea-linux-amd64.deb',