32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { error } from '@sveltejs/kit';
|
|
import { agentReleaseAsset } from '$lib/server/hosts/releases.js';
|
|
export async function GET({ params }: { params: { file: string } }) {
|
|
if (
|
|
!['ec-agent.py', 'ec-agent-update.py', 'manifest.json', 'manifest.json.sig'].includes(
|
|
params.file
|
|
)
|
|
)
|
|
error(404, 'Release asset not found.');
|
|
let content: string;
|
|
try {
|
|
content = await agentReleaseAsset(
|
|
params.file as
|
|
'ec-agent.py' | 'ec-agent-update.py' | 'manifest.json' | 'manifest.json.sig'
|
|
);
|
|
} catch (cause) {
|
|
if ((cause as NodeJS.ErrnoException).code === 'ENOENT')
|
|
error(404, 'Release asset not found.');
|
|
throw cause;
|
|
}
|
|
return new Response(content, {
|
|
headers: {
|
|
'Content-Type': params.file.endsWith('.sig')
|
|
? 'application/pgp-signature'
|
|
: params.file.endsWith('.json')
|
|
? 'application/json'
|
|
: 'text/plain',
|
|
'Cache-Control': 'no-cache'
|
|
}
|
|
});
|
|
}
|