Docker image support #18
@@ -2,6 +2,7 @@ import * as Debian from "@sirherobrine23/debian";
|
|||||||
import { packageManeger, packageData } from "./database.js";
|
import { packageManeger, packageData } from "./database.js";
|
||||||
import { aptStreamConfig } from "./config.js";
|
import { aptStreamConfig } from "./config.js";
|
||||||
import { extendsCrypto } from "@sirherobrine23/extends";
|
import { extendsCrypto } from "@sirherobrine23/extends";
|
||||||
|
import { fileRestore } from "./packageManege.js"
|
||||||
import express from "express";
|
import express from "express";
|
||||||
import stream from "node:stream";
|
import stream from "node:stream";
|
||||||
import openpgp from "openpgp";
|
import openpgp from "openpgp";
|
||||||
@@ -116,6 +117,7 @@ export default function main(packageManeger: packageManeger, config: aptStreamCo
|
|||||||
Filename: path.resolve("/", pathRoot ?? "", "pool", packageComponent ?? "main", `${control.Package}_${control.Architecture}_${control.Version}.deb`),
|
Filename: path.resolve("/", pathRoot ?? "", "pool", packageComponent ?? "main", `${control.Package}_${control.Architecture}_${control.Version}.deb`),
|
||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
|
__stream.push(null);
|
||||||
return extendsCrypto.createHashAsync(comp ? comp : __stream);
|
return extendsCrypto.createHashAsync(comp ? comp : __stream);
|
||||||
});
|
});
|
||||||
return Object.assign(comp ? comp : __stream, __load);
|
return Object.assign(comp ? comp : __stream, __load);
|
||||||
@@ -149,5 +151,13 @@ export default function main(packageManeger: packageManeger, config: aptStreamCo
|
|||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.get("/pool/:componentName/(:package)_(:arch)_(:version).deb", async (req, res, next) => {
|
||||||
|
const { componentName, package: packageName, arch, version: packageVersion } = req.params;
|
||||||
|
const packageID = (await packageManeger.search({packageComponent: componentName, packageArch: arch})).find(({packageControl: { Package, Version }}) => packageName === Package && Version === packageVersion);
|
||||||
|
if (!packageID) return res.status(404).json({error: "Package not exist"});
|
||||||
|
console.log(packageID);
|
||||||
|
return fileRestore(packageID, config).then(str => str.pipe(res.writeHead(200, {}))).catch(next);
|
||||||
|
});
|
||||||
|
|
||||||
return app;
|
return app;
|
||||||
}
|
}
|
@@ -19,6 +19,7 @@ export async function fileRestore(packageDb: packageData, repoConfig: aptStreamC
|
|||||||
return coreHttp.streamRequest(url, {headers: header, query});
|
return coreHttp.streamRequest(url, {headers: header, query});
|
||||||
} else if (source.type === "github") {
|
} else if (source.type === "github") {
|
||||||
const { token } = source, { url } = packageDb.fileRestore;
|
const { token } = source, { url } = packageDb.fileRestore;
|
||||||
|
|
||||||
return coreHttp.streamRequest(url, {headers: token ? {"Authorization": "token "+token} : {}});
|
return coreHttp.streamRequest(url, {headers: token ? {"Authorization": "token "+token} : {}});
|
||||||
} else if (source.type === "oracle_bucket") {
|
} else if (source.type === "oracle_bucket") {
|
||||||
const { authConfig } = source, { fileRestore: { path } } = packageDb;
|
const { authConfig } = source, { fileRestore: { path } } = packageDb;
|
||||||
@@ -114,7 +115,7 @@ export class syncRepository extends EventEmitter {
|
|||||||
this.emit("error", err);
|
this.emit("error", err);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
await userAuth.setup().then(async () => {
|
await userAuth.setup().then(async () => {
|
||||||
for (const tag of tags) {
|
for (const tag of tags) {
|
||||||
const manifestManeger = new dockerUtils.Manifest(await registry.getManifets(tag, userAuth), registry);
|
const manifestManeger = new dockerUtils.Manifest(await registry.getManifets(tag, userAuth), registry);
|
||||||
|
Reference in New Issue
Block a user