-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathbuild_script.dart
More file actions
52 lines (39 loc) · 1.46 KB
/
build_script.dart
File metadata and controls
52 lines (39 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// ignore_for_file: avoid_print
import 'dart:io';
void main(List<String> args) {
if (args.isEmpty) {
print('Usage: dart build_script.dart <version> <build_number>');
print('Example: dart build_script.dart 1.7.2 12');
exit(1);
}
final version = args[0];
final buildNumber = int.parse(args[1]);
final fullVersion = '$version+$buildNumber';
final msixVersion = '$version.0';
// Update pubspec.yaml
updatePubspec(fullVersion, msixVersion);
// Update settings.dart
updateSettings(buildNumber);
print('Version updated to $fullVersion');
}
void updatePubspec(String fullVersion, String msixVersion) {
final file = File('pubspec.yaml');
String content = file.readAsStringSync();
// Update main version - fixed regex pattern
content = content.replaceFirst(
RegExp(r'version: [\d\.]+\+\d+ #version number'),
'version: $fullVersion #version number');
// Update msix version - fixed regex pattern
content = content.replaceFirst(
RegExp(r'msix_version: [\d\.]+ #verion number'),
'msix_version: $msixVersion #verion number');
file.writeAsStringSync(content);
}
void updateSettings(int buildNumber) {
final file = File('lib/const/settings.dart');
String content = file.readAsStringSync();
content = content.replaceFirst(
RegExp(r'versionNumber = \d+ //version number here \+1 for each release'),
'versionNumber = $buildNumber //version number here +1 for each release');
file.writeAsStringSync(content);
}