Some small improvements to the flatpak scripts

This commit is contained in:
Roland Geider
2023-04-17 16:41:04 +02:00
parent adccd66955
commit 120052c322
4 changed files with 22 additions and 33 deletions

View File

@@ -4,16 +4,10 @@
"githubReleaseOrganization": "wger-project",
"githubReleaseProject": "flutter",
"localReleases": [
{
"version": "1.5.3",
"date": "2023-03-16"
}
],
"localReleaseAssets": [
{
"arch": "x86_64",
"tarballPath": "./scripts/flatpak_generator exports/wger-linux-x86_64.tar.gz"
}
],
"localLinuxBuildDir": "../build/linux",
"appDataPath": "de.wger.flutter.appdata.xml",

View File

@@ -30,16 +30,16 @@ void main(List<String> arguments) async {
final fetchFromGithub = arguments.contains('--github');
final outputDir = Directory('${Directory.current.path}/flatpak_generator exports');
final outputDir = Directory('${Directory.current.path}/flatpak_generator_exports');
outputDir.createSync();
final packageGenerator = PackageGenerator(inputDir: metaFile.parent, meta: meta);
if (PackageGenerator.runningOnARM()) {
await packageGenerator.generatePackage(outputDir, CPUArchitecture.aarch64, fetchFromGithub);
} else {
await packageGenerator.generatePackage(outputDir, CPUArchitecture.x86_64, fetchFromGithub);
}
packageGenerator.generatePackage(
outputDir,
PackageGenerator.runningOnARM() ? CPUArchitecture.aarch64 : CPUArchitecture.x86_64,
fetchFromGithub,
);
}
class PackageGenerator {
@@ -101,17 +101,20 @@ class PackageGenerator {
final destDir = Directory('${tempDir.path}/bin');
destDir.createSync();
final packagePath =
'${outputDir.absolute.path}/${meta.lowercaseAppName}-linux-${arch.flatpakArchCode}.tar.gz';
final baseFileName = '${meta.lowercaseAppName}-linux-${arch.flatpakArchCode}';
final packagePath = '${outputDir.absolute.path}/$baseFileName.tar.gz';
Process.runSync('cp', ['-r', '${buildDir.absolute.path}/.', destDir.absolute.path]);
Process.runSync('tar', ['-czvf', packagePath, '.'], workingDirectory: tempDir.absolute.path);
print('Generated $packagePath');
final preShasum = Process.runSync('shasum', ['-a', '256', packagePath]);
final sha256 = preShasum.stdout.toString().split(' ').first;
shaByArch.putIfAbsent(arch, () => preShasum.stdout.toString().split(' ').first);
final shaFile = await File('${outputDir.path}/$baseFileName.sha256').writeAsString(sha256);
print('Generated ${shaFile.path}');
shaByArch.putIfAbsent(arch, () => sha256);
tempDir.deleteSync(recursive: true);
}

View File

@@ -53,7 +53,7 @@ class GithubReleases {
List<Release>? _releases;
List<ReleaseAsset>? _latestReleaseAssets;
GithubReleases(this.githubReleaseOrganization, this.githubReleaseProject) {}
GithubReleases(this.githubReleaseOrganization, this.githubReleaseProject);
Future<List<Release>> getReleases() async {
if (_releases == null) {
@@ -84,7 +84,7 @@ class GithubReleases {
await Future.forEach<dynamic>(decodedJson, (dynamic releaseDynamic) async {
final releaseMap = releaseDynamic as Map;
final releaseDateAndTime = DateTime.parse((releaseMap['published_at'] as String));
final releaseDateAndTime = DateTime.parse(releaseMap['published_at'] as String);
final releaseDateString = releaseDateAndTime.toIso8601String().split('T').first;
if (latestReleaseAssetDate == null ||
@@ -167,16 +167,7 @@ class GithubReleases {
}
Future<String> _readSha(String shaUrl) async {
final urlSplitByScheme = shaUrl.split('://');
final urlWithoutScheme = urlSplitByScheme.last;
final firstSlashIndex = urlWithoutScheme.indexOf('/');
return (await http.get(Uri(
scheme: urlSplitByScheme.first,
host: urlWithoutScheme.substring(0, firstSlashIndex),
path: urlWithoutScheme.substring(firstSlashIndex))))
.body
.split(' ')
.first;
return (await http.get(Uri.parse(shaUrl))).body.split(' ').first;
}
}
@@ -246,7 +237,7 @@ class FlatpakMeta {
throw Exception(
'Metadata must include Github repository info if fetching releases from Github.');
}
return await _githubReleases!.getLatestReleaseAssets();
return _githubReleases!.getLatestReleaseAssets();
} else {
if (_localReleases == null) {
throw Exception('Metadata must include releases if not fetching releases from Github.');

View File

@@ -1,5 +1,6 @@
import 'dart:convert';
import 'dart:io';
import 'flatpak_shared.dart';
void main(List<String> arguments) async {
@@ -25,7 +26,7 @@ void main(List<String> arguments) async {
final fetchFromGithub = arguments.contains('--github');
final outputDir = Directory('${Directory.current.path}/flatpak_generator exports');
final outputDir = Directory('${Directory.current.path}/flatpak_generator_exports');
outputDir.createSync();
final manifestGenerator = FlatpakManifestGenerator(meta);
@@ -37,7 +38,7 @@ void main(List<String> arguments) async {
final flathubJsonContent = await manifestGenerator.generateFlathubJson(fetchFromGithub);
if (flathubJsonContent != null) {
final flathubJsonPath = '${outputDir.path}/flathub.json}';
final flathubJsonPath = '${outputDir.path}/flathub.json';
final flathubJsonFile = File(flathubJsonPath);
flathubJsonFile.writeAsStringSync(flathubJsonContent);
print('Generated $flathubJsonPath');