cloneDependency method
Clone the dependency from GitHub
Implementation
Future<void> cloneDependency({
required Directory workspaceDir,
required String dependency,
required String repositoryUrl,
required GgLog ggLog,
String? reference,
Future<ProcessResult> Function(
String,
List<String>, {
String? workingDirectory,
})? processRun,
}) async {
processRun ??= Process.run;
ggLog('Cloning $dependency into workspace...');
// coverage:ignore-start
List<String> arguments = ['clone', repositoryUrl];
if (reference != null) {
arguments.add('-b');
arguments.add(reference);
}
final cloneResult = await processRun(
'git',
arguments,
workingDirectory: workspaceDir.path,
);
if (cloneResult.exitCode != 0) {
throw Exception(
'Failed to clone $dependency. Exit code: ${cloneResult.exitCode}',
);
}
// coverage:ignore-end
}