Skip to content

Commit 69861bf

Browse files
committed
Created a build script for the pages page
1 parent c31cff0 commit 69861bf

File tree

4 files changed

+76
-4
lines changed

4 files changed

+76
-4
lines changed

example/pubspec.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ packages:
113113
path: ".."
114114
relative: true
115115
source: path
116-
version: "0.2.1"
116+
version: "0.2.2"
117117
flutter_web_plugins:
118118
dependency: transitive
119119
description: flutter

pubspec.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ packages:
186186
source: hosted
187187
version: "2.1.0"
188188
path:
189-
dependency: transitive
189+
dependency: "direct dev"
190190
description:
191191
name: path
192192
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
@@ -362,7 +362,7 @@ packages:
362362
source: hosted
363363
version: "1.2.1"
364364
yaml:
365-
dependency: transitive
365+
dependency: "direct dev"
366366
description:
367367
name: yaml
368368
sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5"

pubspec.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: flutter_web_bluetooth
22
description: A library to use the web bluetooth api in your web project. Will play nice if used in IO projects.
3-
version: 0.2.1
3+
version: 0.2.2
44
homepage: https://github.com/jeroen1602/flutter_web_bluetooth/
55
repository: https://github.com/jeroen1602/flutter_web_bluetooth/
66
issue_tracker: https://github.com/jeroen1602/flutter_web_bluetooth/issues/
@@ -21,4 +21,6 @@ dependencies:
2121

2222
dev_dependencies:
2323
lints: ^2.0.1
24+
path: ^1.8.3
2425
test: ^1.24.1
26+
yaml: ^3.1.2

tool/build_pages.dart

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#!/bin/env dart
2+
// ignore_for_file: avoid_print
3+
4+
import "dart:io";
5+
import "package:path/path.dart";
6+
import "package:yaml/yaml.dart";
7+
8+
Future<int> main() async {
9+
final exampleDir =
10+
canonicalize(join(dirname(Platform.script.toFilePath()), "../example"));
11+
12+
print("building project");
13+
final process = await Process.start(
14+
"flutter",
15+
[
16+
"build",
17+
"web",
18+
"--base-href",
19+
"/flutter_web_bluetooth/",
20+
"--release",
21+
"--source-maps",
22+
"--dart-define=redirectToHttps=true"
23+
],
24+
workingDirectory: exampleDir);
25+
process.stdout.pipe(stdout);
26+
process.stderr.pipe(stderr);
27+
final exitCode = await process.exitCode;
28+
if (exitCode != 0) {
29+
return exitCode;
30+
}
31+
32+
final buildFolder = join(exampleDir, "build/web");
33+
34+
print("updating service working");
35+
final serviceWorkerPath = join(buildFolder, "flutter_service_worker.js");
36+
final serviceWorkerFile = File(serviceWorkerPath);
37+
final serviceWorker = await serviceWorkerFile.readAsString();
38+
await serviceWorkerFile.writeAsString(
39+
serviceWorker.replaceFirst(
40+
RegExp("\"/\":"), "\"/flutter_web_bluetooth/\""),
41+
flush: true);
42+
43+
print("Updating provided pubspec");
44+
final pubspecFilePath = join(buildFolder, "assets/pubspec.lock");
45+
final pubspecFile = File(pubspecFilePath);
46+
final pubspecContent = await pubspecFile.readAsString();
47+
48+
final parsed = loadYaml(pubspecContent);
49+
final packages = parsed["packages"];
50+
if (packages == null) {
51+
throw ArgumentError();
52+
}
53+
final library = packages["flutter_web_bluetooth"];
54+
if (library == null) {
55+
throw ArgumentError();
56+
}
57+
final version = library["version"]?.toString();
58+
if (version == null) {
59+
throw ArgumentError("Version was not set");
60+
}
61+
final newPubspecContent = """
62+
packages:
63+
flutter_web_bluetooth:
64+
version: "$version"
65+
""";
66+
67+
await pubspecFile.writeAsString(newPubspecContent);
68+
69+
return 0;
70+
}

0 commit comments

Comments
 (0)