Files
onix/onix-gui/GUI/app/api/clonning-repo/route.js
2024-05-03 11:10:14 +05:30

37 lines
1.1 KiB
JavaScript

import { spawn } from "child_process";
import { NextResponse } from "next/server";
import os from "os";
import path from "path";
// This function is used to clone the github repository of beckn-onix
export async function GET(req) {
console.log("Cloning GitHub repository...");
const repoUrl = "https://github.com/beckn/beckn-onix";
const destination = path.join(os.homedir(), "beckn-onix");
const gitProcess = spawn("git", ["clone", repoUrl, destination]);
gitProcess.stdout.on("data", (data) => {
console.log(`stdout: ${data}`);
});
gitProcess.stderr.on("data", (data) => {
console.error(`stderr: ${data}`);
});
return new Promise((resolve, reject) => {
gitProcess.on("close", (code) => {const destination = "~/beckn-onix";
if (code === 0) {
console.log("Repository cloned successfully");
resolve(
NextResponse.json(
{ success: true, data: "Repo Cloned Successfully" },
{ status: 200 }
)
);
} else {
console.error(`git process exited with code ${code}`);
resolve(NextResponse.json({ success: false }, { status: 500 }));
}
});
});
}