Skip to content

Commit c2802fb

Browse files
committed
Refactor to use dart script to download binaries for demos
1 parent 9289479 commit c2802fb

File tree

4 files changed

+43
-15
lines changed

4 files changed

+43
-15
lines changed

melos.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ command:
1616
noPrivate: true
1717
publish:
1818
hooks:
19-
pre: sh tool/download_binaries.sh v0.1.8 # Download latest core binaries when publishing
19+
pre: dart ./scripts/download_core_binary_demos.dart # Download latest core binaries when publishing
2020
packageFilters:
2121
noPrivate: true
2222

@@ -25,7 +25,7 @@ scripts:
2525
description: Download SQLite3 WASM for demos
2626
run: |
2727
melos bootstrap && melos prepare:assets && dart ./scripts/compile_webworker.dart && dart ./scripts/init_powersync_core_binary.dart
28-
melos prepare:demos
28+
dart ./scripts/download_core_binary_demos.dart && melos prepare:demos
2929
3030
prepare:demos:
3131
description: Download SQLite3 wasm for demos

packages/powersync_flutter_libs/.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,7 @@ migrate_working_dir/
2828
.dart_tool/
2929
build/
3030

31-
*.a
31+
!*.so
32+
*.a
33+
!*.dylib
34+
!*.dll
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/// Downloads the powersync-core dynamic library to run the demos using melos
2+
/// This is only necessary in the monorepo setup
3+
import 'dart:io';
4+
5+
final coreUrl =
6+
'https://github.com/powersync-ja/powersync-sqlite-core/releases/download/v0.1.8';
7+
8+
void main() async {
9+
final powersyncLibsLinuxPath = "packages/powersync_flutter_libs/linux";
10+
final powersyncLibsWindowsPath = "packages/powersync_flutter_libs/windows";
11+
12+
final linuxArm64FileName = "libpowersync_aarch64.so";
13+
final linuxX64FileName = "libpowersync_x64.so";
14+
final windowsX64FileName = "powersync_x64.dll";
15+
16+
// Download dynamic library
17+
await downloadFile("$coreUrl/$linuxArm64FileName",
18+
"$powersyncLibsLinuxPath/$linuxArm64FileName");
19+
await downloadFile("$coreUrl/$linuxX64FileName",
20+
"$powersyncLibsLinuxPath/$linuxX64FileName");
21+
await downloadFile("$coreUrl/$windowsX64FileName",
22+
"$powersyncLibsWindowsPath/$windowsX64FileName");
23+
}
24+
25+
Future<void> downloadFile(String url, String savePath) async {
26+
print('Downloading: $url');
27+
var httpClient = HttpClient();
28+
var request = await httpClient.getUrl(Uri.parse(url));
29+
var response = await request.close();
30+
if (response.statusCode == HttpStatus.ok) {
31+
var file = File(savePath);
32+
await response.pipe(file.openWrite());
33+
} else {
34+
print(
35+
'Failed to download file: ${response.statusCode} ${response.reasonPhrase}');
36+
}
37+
}

tool/download_binaries.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)