import { Spawner } from '.';
import { getFilteredFileNames } from './ignore';

export async function tarFiles(source: Spawner, ignore: string[] = []) {
  const filteredFileNames = await getFilteredFileNames(source, ignore);
  return await source.tar(...filteredFileNames);
}

export async function copyFiles(
  source: Spawner,
  target: Spawner,
  ignore: string[] = []
) {
  const readable = await tarFiles(source, ignore);
  await target.untar(readable);
}

export async function copyFile(
  source: Spawner,
  target: Spawner,
  filename: string
) {
  const tarfile = await source.tar(filename);
  await target.untar(tarfile);
}
