GUI for onix
This commit is contained in:
36
onix-gui/app/api/clonning-repo/route.js
Normal file
36
onix-gui/app/api/clonning-repo/route.js
Normal file
@@ -0,0 +1,36 @@
|
||||
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 }));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user