filesystemPath function

String? filesystemPath(
  1. String artifactDisplayPath, {
  2. required String artifactRoot,
  3. required String displayRoot,
})

Resolves a display-root path to a filesystem path under artifactRoot.

Implementation

String? filesystemPath(
  String artifactDisplayPath, {
  required String artifactRoot,
  required String displayRoot,
}) {
  final normalized = artifactDisplayPath.replaceAll('\\', '/');
  final display = displayRoot.replaceAll('\\', '/');
  String relative;
  if (normalized == display || normalized.startsWith('$display/')) {
    relative = p.relative(normalized, from: display);
  } else if (p.isAbsolute(normalized)) {
    return normalized;
  } else {
    relative = normalized;
  }
  return p.normalize(p.join(artifactRoot, relative));
}