async function run(files, {parent: options}) {
  let opts = {
    cleanup: Boolean(options.cleanup),
    dryRun: Boolean(options.dryRun),
    keep: options.keep,
    grep: options.grep,
    verbose: Boolean(options.verbose) || Boolean(options.dryRun),
    yes: Boolean(options.yes),
  };

  let fixturesToCleanup = new Set();
  let testsToVerify = new Map();

  for (let file of files) {
    let results = await runJsCodeshift(file, opts);
    for (let fixture of results.fixturesToCleanup) {
      fixturesToCleanup.add(fixture);
    }
    testsToVerify.set(file, results.testsToVerify);
  }

  await cleanupFixtures(fixturesToCleanup, opts);
  reportResults({fixturesToCleanup, testsToVerify}, opts);
}
Runs the transform and optionally cleans up and verifies the results.