anchor.diff:    if (dryRun) return;
   
     await Future.wait(clones.map((c) => c.perform()));
  +
  +  if (finalCommand != null) {
  +    await runCommand(finalCommand, clones.map((c) => c.destination).toList());
  +  }
   }
   
   printClones(List<FileClone> clones) {
  
positive.code:     return rel == '.' ? replacer(to) : join(to, replacer(rel));
    }
  
    Future runCommand(String command, File file) async {
      final args = command.split(' ');
      final result = await Process.run(
          args.first,
          []
            ..addAll(args.skip(1))
            ..add(file.path));
      if (result.exitCode == 0) {
        stdout.write(result.stdout);
      } else {
        stderr.writeln(
            'Command `$command` failed on ${file.path}:\n${result.stderr}');
      }
    }
  
  
negative.code:   final argResults = argParser.parse(args);
  
    final editCommand = argResults['edit-command'];
    final copyCommand = argResults['copy-command'];
    final addCommand = argResults['add-command'];
    final finalCommand = argResults['final-command'];
    final dryRun = argResults['dry-run'];
    final verbose = argResults['verbose'];
    final strict = argResults['strict'];
  