new: no titlebar on desktop

This commit is contained in:
lollipopkit
2023-12-09 16:31:18 +08:00
parent cd9d5567fb
commit b2eb96ec16
19 changed files with 237 additions and 123 deletions

View File

@@ -5,6 +5,7 @@ import 'dart:convert';
import 'dart:io';
const appName = 'ServerBox';
final appNameLower = appName.toLowerCase();
const buildDataFilePath = 'lib/data/res/build_data.dart';
const apkPath = 'build/app/outputs/flutter-apk/app-release.apk';
@@ -159,47 +160,49 @@ Future<void> flutterBuildAndroid() async {
Future<void> flutterBuildLinux() async {
await flutterBuild('linux');
// mkdir ServerBox.AppDir
await Process.run('mkdir', ['ServerBox.AppDir']);
// cp -r build/linux/x64/release/bundle/* ServerBox.AppDir
const appDirName = '$appName.AppDir';
// mkdir appName.AppDir
await Process.run('mkdir', [appDirName]);
// cp -r build/linux/x64/release/bundle/* appName.AppDir
await Process.run('cp', [
'-r',
'./build/linux/x64/release/bundle/*',
'ServerBox.AppDir',
appDirName,
]);
// cp -r assets/app_icon.png ServerBox.AppDir
await Process.run('cp', [
'-r',
'./assets/app_icon.png',
'ServerBox.AppDir',
appDirName,
]);
// Create AppRun
const appRun = '''
#!/bin/sh
cd "\$(dirname "\$0")"
exec ./ServerBox
exec ./$appName
''';
await File('ServerBox.AppDir/AppRun').writeAsString(appRun);
const appRunName = '$appDirName/AppRun';
await File(appRunName).writeAsString(appRun);
// chmod +x AppRun
await Process.run('chmod', ['+x', 'ServerBox.AppDir/AppRun']);
await Process.run('chmod', ['+x', appRunName]);
// Create .desktop
const desktop = '''
[Desktop Entry]
Name=ServerBox
Exec=ServerBox
Name=$appName
Exec=$appName
Icon=app_icon
Type=Application
Categories=Network;
''';
await File('ServerBox.AppDir/ServerBox.desktop').writeAsString(desktop);
await File('$appDirName/$appName.desktop').writeAsString(desktop);
// Run appimagetool
await Process.run('appimagetool', ['ServerBox.AppDir']);
await Process.run('appimagetool', [appDirName]);
await scpLinux2CDN();
// Clean build files
await Process.run('rm', ['-r', 'ServerBox.AppDir']);
await Process.run('rm', ['ServerBox-x86_64.AppImage']);
await Process.run('rm', ['-r', appDirName]);
await Process.run('rm', ['$appName-x86_64.AppImage']);
}
Future<void> flutterBuildWin() async {
@@ -212,7 +215,7 @@ Future<void> scpApk2CDN() async {
print('SHA256: $sha256');
final result = await Process.run(
'scp',
[apkPath, 'hk:/var/www/res/serverbox/$sha256.apk'],
[apkPath, 'hk:/var/www/res/$appNameLower/$sha256.apk'],
runInShell: true,
);
if (result.exitCode != 0) {
@@ -225,8 +228,8 @@ Future<void> scpLinux2CDN() async {
final result = await Process.run(
'scp',
[
'ServerBox-x86_64.AppImage',
'hk:/var/www/res/serverbox/$build.AppImage',
'$appName-x86_64.AppImage',
'hk:/var/www/res/$appNameLower/$build.AppImage',
],
runInShell: true,
);
@@ -241,8 +244,8 @@ Future<void> scpWindows2CDN() async {
final result = await Process.run(
'scp',
[
'./build/windows/runner/Release/server_box.zip',
'hk:/var/www/res/serverbox/$build.zip',
'./build/windows/runner/Release/$appName.zip',
'hk:/var/www/res/$appNameLower/$build.zip',
],
runInShell: true,
);