Docker image support #18
@@ -2,6 +2,7 @@ import * as Debian from "@sirherobrine23/debian";
|
||||
import { packageManeger, packageData } from "./database.js";
|
||||
import { aptStreamConfig } from "./config.js";
|
||||
import { extendsCrypto } from "@sirherobrine23/extends";
|
||||
import { fileRestore } from "./packageManege.js"
|
||||
import express from "express";
|
||||
import stream from "node:stream";
|
||||
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`),
|
||||
})));
|
||||
}
|
||||
__stream.push(null);
|
||||
return extendsCrypto.createHashAsync(comp ? comp : __stream);
|
||||
});
|
||||
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;
|
||||
}
|
@@ -19,6 +19,7 @@ export async function fileRestore(packageDb: packageData, repoConfig: aptStreamC
|
||||
return coreHttp.streamRequest(url, {headers: header, query});
|
||||
} else if (source.type === "github") {
|
||||
const { token } = source, { url } = packageDb.fileRestore;
|
||||
|
||||
return coreHttp.streamRequest(url, {headers: token ? {"Authorization": "token "+token} : {}});
|
||||
} else if (source.type === "oracle_bucket") {
|
||||
const { authConfig } = source, { fileRestore: { path } } = packageDb;
|
||||
@@ -114,7 +115,7 @@ export class syncRepository extends EventEmitter {
|
||||
this.emit("error", err);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
await userAuth.setup().then(async () => {
|
||||
for (const tag of tags) {
|
||||
const manifestManeger = new dockerUtils.Manifest(await registry.getManifets(tag, userAuth), registry);
|
||||
|
Reference in New Issue
Block a user