Skip to content

Commit

Permalink
TEST
Browse files Browse the repository at this point in the history
  • Loading branch information
TaYaKi71751 committed Dec 13, 2023
1 parent 470d10c commit 170c1bb
Show file tree
Hide file tree
Showing 5 changed files with 187 additions and 88 deletions.
187 changes: 102 additions & 85 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,53 +6,53 @@ on:
merge_group:

jobs:
ios-build:
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
with:
ref: dev
- uses: subosito/flutter-action@v2
with:
# flutter-version: '2.5.2'
channel: 'stable'
- uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Preprocess
run: |
# cd lib/server
# wget -q ${{ secrets.SECRET_SALT }}
# wget -q ${{ secrets.SECRET_WSALT }}
# cd ../..
cat << EOF > lib/server/salt.dart
String getValid(foo) {return foo;}
EOF
cat << EOF > lib/server/wsalt.dart
String getValid(foo) {return foo;}
EOF
python3 preprocess-ios.py
- name: Podfile
run: |
cd ios
rm Podfile.lock
flutter clean
flutter pub get
pod install
pod update
cd ..
- name: Build
run: |
flutter build ios --release --no-codesign
mkdir -p Payload
mv ./build/ios/iphoneos/Runner.app Payload
zip -r -y Payload.zip Payload/Runner.app
mv Payload.zip Payload.ipa
- name: Upload IPA
uses: actions/upload-artifact@v2
with:
name: ipa-build
path: Payload.ipa
# ios-build:
# runs-on: macos-latest
# steps:
# - uses: actions/checkout@v2
# with:
# ref: dev
# - uses: subosito/flutter-action@v2
# with:
# # flutter-version: '2.5.2'
# channel: 'stable'
# - uses: actions/setup-python@v2
# with:
# python-version: '3.8'
# - name: Preprocess
# run: |
# # cd lib/server
# # wget -q ${{ secrets.SECRET_SALT }}
# # wget -q ${{ secrets.SECRET_WSALT }}
# # cd ../..
# cat << EOF > lib/server/salt.dart
# String getValid(foo) {return foo;}
# EOF
# cat << EOF > lib/server/wsalt.dart
# String getValid(foo) {return foo;}
# EOF
# python3 preprocess-ios.py
# - name: Podfile
# run: |
# cd ios
# rm Podfile.lock
# flutter clean
# flutter pub get
# pod install
# pod update
# cd ..
# - name: Build
# run: |
# flutter build ios --release --no-codesign
# mkdir -p Payload
# mv ./build/ios/iphoneos/Runner.app Payload
# zip -r -y Payload.zip Payload/Runner.app
# mv Payload.zip Payload.ipa
# - name: Upload IPA
# uses: actions/upload-artifact@v2
# with:
# name: ipa-build
# path: Payload.ipa

# https://github.com/AppImageCrafters/appimage-builder-flutter-example/blob/main/.github/workflows/appimage.yml
linux-build:
Expand Down Expand Up @@ -81,7 +81,24 @@ jobs:
cat << EOF > lib/server/wsalt.dart
String getValid(foo) {return foo;}
EOF
mkdir -p assets/p7zip/linux/armv7/
mkdir -p assets/p7zip/linux/armv8/
mkdir -p assets/p7zip/linux/x86/
mkdir -p assets/p7zip/linux/x86_64/
touch assets/p7zip/linux/armv7/7zr
touch assets/p7zip/linux/armv8/7zr
touch assets/p7zip/linux/x86/7zr
touch assets/p7zip/linux/x86_64/7zr
python3 preprocess-linux.py
git clone https://github.com/project-violet/p7zip.git
cd p7zip
make 7zr
cd ..
mkdir -p ./assets/p7zip/linux/$(uname -m | cut -f1 -d \n) || true
sudo chmod 777 p7zip/bin/7zr
sudo chown $USER:$USER p7zip/bin/7zr
echo cp p7zip/bin/7zr assets/p7zip/linux/$(uname -m | tr -d '\n' | tr -d '\r')/7zr
cp p7zip/bin/7zr assets/p7zip/linux/$(uname -m | tr -d '\n' | tr -d '\r')/7zr
flutter build linux
find ./build/linux/x64/release/plugins -type f -name '*.so' -exec cp {} ./build/linux/x64/release/bundle/lib/ \;
- name: Save build Artifact
Expand Down Expand Up @@ -109,41 +126,41 @@ jobs:
# files: './*.AppImage*'
# repo_token: ${{ secrets.GITHUB_TOKEN }}

android-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
ref: dev
- uses: actions/setup-java@v1
with:
java-version: '12.x'
- uses: subosito/flutter-action@v1
with:
# flutter-version: '2.5.2'
channel: 'stable'
- uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Preprocess
run: |
# cd lib/server
# wget -q ${{ secrets.SECRET_SALT }}
# wget -q ${{ secrets.SECRET_WSALT }}
# cd ../..
cat << EOF > lib/server/salt.dart
String getValid(foo) {return foo;}
EOF
cat << EOF > lib/server/wsalt.dart
String getValid(foo) {return foo;}
EOF
python3 preprocess-android.py
- name: Build
run: |
flutter clean
flutter build apk --release
- name: Upload APK
uses: actions/upload-artifact@v2
with:
name: apk-build
path: ./build/app/outputs/apk/release/app-release.apk
# android-build:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v2
# with:
# ref: dev
# - uses: actions/setup-java@v1
# with:
# java-version: '12.x'
# - uses: subosito/flutter-action@v1
# with:
# # flutter-version: '2.5.2'
# channel: 'stable'
# - uses: actions/setup-python@v2
# with:
# python-version: '3.8'
# - name: Preprocess
# run: |
# # cd lib/server
# # wget -q ${{ secrets.SECRET_SALT }}
# # wget -q ${{ secrets.SECRET_WSALT }}
# # cd ../..
# cat << EOF > lib/server/salt.dart
# String getValid(foo) {return foo;}
# EOF
# cat << EOF > lib/server/wsalt.dart
# String getValid(foo) {return foo;}
# EOF
# python3 preprocess-android.py
# - name: Build
# run: |
# flutter clean
# flutter build apk --release
# - name: Upload APK
# uses: actions/upload-artifact@v2
# with:
# name: apk-build
# path: ./build/app/outputs/apk/release/app-release.apk
1 change: 1 addition & 0 deletions AppImageBuilder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ AppDir:
- sourceline: deb http://security.ubuntu.com/ubuntu focal-security multiverse
include:
- libgtk-3-0
- p7zip-full
exclude:
- humanity-icon-theme
- hicolor-icon-theme
Expand Down
4 changes: 2 additions & 2 deletions lib/pages/database_download/database_download_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,9 @@ class DataBaseDownloadPageState extends State<DataBaseDownloadPage> {

Future<void> downloadFileLinux() async {
try {
await downloadFileLinuxWith('latest', true);
await downloadFileAndroidWith('latest', true);
} catch(e){
await downloadFileLinuxWith('old', false);
await downloadFileAndroidWith('old', false);
}
}

Expand Down
78 changes: 77 additions & 1 deletion lib/pages/database_download/decompress.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// This source code is a part of Project Violet.
// Copyright (C) 2020-2023. violet-team. Licensed under the Apache-2.0 License.

import 'dart:convert';
import 'dart:ffi';
import 'dart:io';
import 'dart:isolate';
Expand Down Expand Up @@ -49,7 +50,40 @@ class P7zip {
final soPath = await _checkSharedLibrary();
print(soPath);
if (soPath == null) {
return null;
final binPath = await _checkBinary();
if(binPath == null){
return null;
}
final filesStr = files.join(' ');
await ((()async{
Process process = await Process.start(
"chmod",
[
"/tmp/7zr"
],
);
final result = await process;
if(await result.stderr.transform(utf8.decoder).isEmpty) throw Error();
await result.stdout
.transform(utf8.decoder)
.forEach(print);
})());
await ((()async{
Process process = await Process.start(
"/tmp/7zr",
[
"e $filesStr",
"-o$path"
],
);
final result = await process;
if(await result.stderr.transform(utf8.decoder).isEmpty) throw Error();
await result.stdout
.transform(utf8.decoder)
.forEach(print);
})());
// return null;
return path;
}

final filesStr = files.join(' ');
Expand Down Expand Up @@ -97,4 +131,46 @@ class P7zip {

return libraryFile.path;
}
Future<String?> _checkBinary() async {
if(!Platform.isLinux){
return null;
}

var _arch = await ((()async{
var _a = '';
// https://stackoverflow.com/questions/70247458/flutter-dart-print-output-of-all-child-processes-to-stdout
Process process = await Process.start(
"uname",
[
"-m"
],
);

await process.stdout
.transform(utf8.decoder)
.forEach((value){
if(_a.isEmpty){
_a = value.replaceAll('\r', '').replaceAll('\n', '');
}
});
if((_a.contains('arm') || _a.contains('aarch')) && (_a.contains('32') || _a.contains('v7'))) return 'armv7';
if((_a.contains('arm') || _a.contains('aarch')) && (_a.contains('64') || _a.contains('v8'))) return 'armv8';
if(_a == 'x86_64' || _a == 'amd64') return 'x86_64';
if((_a.contains('i') || _a.contains('x')) && _a.contains('86') && !_a.contains('64')) return 'x86';
})());
final binaryPath = 'assets/p7zip/linux/$_arch/7zr';
final binaryContent = await rootBundle.load(binaryPath);
final tempDir = await getTemporaryDirectory();
final binaryFile = File('${tempDir}/7zr');
if(await binaryFile.exists()){
await binaryFile.delete();
}
final createdFile = await binaryFile.create();
final openFile = await createdFile.open(mode: FileMode.write);
final writtenFile =
await openFile.writeFrom(Uint8List.view(binaryContent.buffer));
await writtenFile.close();

return binaryFile.path;
}
}
5 changes: 5 additions & 0 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,11 @@ flutter:
- assets/p7zip/x86/lib7zr.so # @dependent: android
- assets/p7zip/x86_64/lib7zr.so # @dependent: android

- assets/p7zip/linux/armv7/7zr # @dependent: linux
- assets/p7zip/linux/armv8/7zr # @dependent: linux
- assets/p7zip/linux/x86/7zr # @dependent: linux
- assets/p7zip/linux/x86_64/7zr # @dependent: linux

- assets/webview/
- assets/db/

Expand Down

0 comments on commit 170c1bb

Please sign in to comment.