-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathinstall.dart
57 lines (47 loc) · 1.2 KB
/
install.dart
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
53
54
55
56
57
import 'dart:io';
String name = 'pubspec_updater';
Future main() async {
// await getPub();
await removeBuild();
await makeBuildDir();
await buildNative();
await install();
await removeBuild();
}
Future getPub() async {
return Process.run('flutter', ['pub', 'get']).then((ProcessResult results) {
stdout.write(results.stdout);
stdout.write(results.stderr);
});
}
Future removeBuild() async {
final Directory buildDir = Directory('./build');
final bool exists = buildDir.existsSync();
if (exists) {
buildDir.deleteSync(recursive: true);
}
}
Future makeBuildDir() async {
final Directory buildDir = Directory('./build');
final bool exists = buildDir.existsSync();
if (!exists) {
buildDir.createSync(recursive: false);
}
}
Future buildNative() async {
return Process.run('dart2native', [
'./lib/pubspec_updater.dart',
'-p',
'./.packages',
'-o',
'./build/$name'
]).then((ProcessResult results) {
stdout.write(results.stdout);
stdout.write(results.stderr);
});
}
Future install() async {
final String home =
Platform.environment['HOME'] ?? Platform.environment['USERPROFILE'];
return File('./build/$name').copy('$home/bin/$name');
}