mirror of
https://github.com/wger-project/flutter.git
synced 2026-02-18 00:17:48 +01:00
Some small improvements to the flatpak scripts
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.');
|
||||
|
||||
@@ -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');
|
||||
|
||||
Reference in New Issue
Block a user