import { exec } from "../exec";

type Payload = {
  template: string;
  project: string;
  db: string;
};

export async function duplicateTemplate(jobId: number, payload: Payload) {
  if (!/^[a-zA-Z0-9_-]+$/.test(payload.template)) throw new Error("Invalid template");
  if (!/^[a-zA-Z0-9_-]+$/.test(payload.project)) throw new Error("Invalid project");
  if (!/^[a-zA-Z0-9_-]+$/.test(payload.db)) throw new Error("Invalid db");

  const scriptPath = "/var/www/html/wordpress-manager-v2/scripts/duplicate-template.sh";

  const template = payload.template.toLowerCase();

  await exec(jobId, "bash", [
    scriptPath,
    template,
    payload.project.toLowerCase(),
    payload.db.toLowerCase(),
    template
  ]);
}
