moveAssets method

dynamic moveAssets()

Implementation

moveAssets() async {
  for (final dirName in assets.directories) {
    final sourceDir = Directory(p.join(assets.source, dirName));
    final destDir = Directory(p.join(outputDir.path, dirName));

    if (!sourceDir.existsSync()) {
      stderr.writeln(
          AnsiStyles.red("⚠ missing asset directory [${sourceDir.path}]"));
      continue;
    }
    for (final entity in sourceDir.listSync(recursive: true)) {
      if (entity is File) {
        final relative = p.relative(entity.path, from: sourceDir.path);
        final targetFile = File(p.join(destDir.path, relative));
        targetFile.createSync(recursive: true);
        targetFile.writeAsBytesSync(entity.readAsBytesSync());
        if (shouldCompress) {
          await _compress(targetFile.path);
          print(
            "${AnsiStyles.cyan("✔ copied asset:\n")}"
            "${AnsiStyles.magenta("\t ◉ [${entity.path} ${AnsiStyles.cyanBright.bold("${_getSize(entity.path)}kb")}] ->\n")}"
            "${AnsiStyles.magenta("\t ◉ [${targetFile.path} ${AnsiStyles.cyanBright.bold("${_getSize(targetFile.path)}kb")}]\n")}"
          );
        } else {
         print(
            "${AnsiStyles.cyan("✔ copied asset: ")}${AnsiStyles.magenta("[${entity.path} -> ${targetFile.path}]")}");
        }
      }
    }
  }
}