pull function

Future<void> pull(
  1. LibBranch lib,
  2. String target,
  3. String host
)

Implementation

Future<void> pull(LibBranch lib, String target, String host) async {
  var dir = Directory(target);
  print('current directory: $target');
  if (!dir.existsSync()) {
    print('clone: ---> git clone -b ${lib.branch} $host/${lib.repo} $target');
    var result = await Process.run(
        'git', ['clone', '-b', '${lib.branch}' ,'$host/${lib.repo}', '$target']);
    print('${result.stdout}');
  } else {
    await Future.forEach<Future>([
      Process.run('git', ['fetch'], workingDirectory: target),
      Process.run('git', ['checkout', '${lib.branch}'],
          workingDirectory: target),
      Process.run('git', ['pull'], workingDirectory: target),
    ], (command) async {
      var result = await command;
      print('${result.stdout}');
    });
  }
}