[FEATURE] Initial FS traversal

This commit is contained in:
Dunemask 2023-12-18 16:50:33 -07:00
parent af44ff710f
commit e66e685903
11 changed files with 1260 additions and 108 deletions

View file

@ -6,6 +6,19 @@ export async function listFiles(req, res) {
if (!serverSpec) return res.sendStatus(400);
if (!serverSpec.name) return res.status(400).send("Server name required!");
listServerFiles(serverSpec)
.then(() => res.sendStatus(200))
.then((f) => {
const fileData = f.map((fi, i) => ({
name: fi.name,
isDir: fi.type === 2,
id: `${fi.name}-${i}`,
isHidden: fi.name.startsWith("."),
isSymLink: !!fi.link,
size: fi.size,
}));
console.log(fileData);
res.json(fileData);
})
.catch(sendError(res));
}
export async function uploadFile(req, res) {}

View file

@ -179,7 +179,7 @@ export default async function createServerResources(serverSpec) {
const deploymentRes = await k8sDeps.listNamespacedDeployment(namespace);
const deployments = deploymentRes.body.items.map((i) => i.metadata.name);
if (deployments.includes(`mcl-${serverSpec.name}`))
throw new ExpressClientError({m: "Server already exists!", c: 409 });
throw new ExpressClientError({ m: "Server already exists!", c: 409 });
const pvcRes = await k8sCore.listNamespacedPersistentVolumeClaim(namespace);
const pvcs = pvcRes.body.items.map((i) => i.metadata.name);
if (pvcs.includes(`mcl-${serverSpec.name}-volume`))

View file

@ -25,7 +25,7 @@ const handleError = (e) => {
};
export async function listServerFiles(serverSpec) {
const { name } = serverSpec;
const { name, dir } = serverSpec;
const server = await getServerAssets(name);
if (!server)
throw new ExpressClientError({
@ -40,9 +40,12 @@ export async function listServerFiles(serverSpec) {
// FTP Operations;
const client = await useFtp(server.service).catch(handleError);
await client
.list()
.then((f) => res.json(f))
const files = client
.list(dir)
.then((f) => {
client.close();
return f;
})
.catch(handleError);
client.close();
return files;
}