fetch method
Future that completes when the repository is available in the cacheDirectory.
Implementation
@override
Future<void> fetch() async {
if (await Directory(cache).exists()) {
return;
}
var result = await Process.run(
'git', 'clone --depth 1 $url $cache'.split(' '),
stdoutEncoding: utf8);
if (result.exitCode != 0) {
stderr.writeln('error cloning repo');
stderr.write(result.stdout);
stderr.write(result.stderr);
exit(1);
}
if (ref != null) {
result = await Process.run(
'git',
'checkout $ref'.split(' '),
stdoutEncoding: utf8,
workingDirectory: cache,
);
if (result.exitCode != 0) {
stderr.writeln('error checkingout $ref');
stderr.write(result.stdout);
stderr.write(result.stderr);
exit(1);
}
}
}