diff --git a/src/hooks/useConfig.ts b/src/hooks/useConfig.ts index 9196789..1953579 100644 --- a/src/hooks/useConfig.ts +++ b/src/hooks/useConfig.ts @@ -9,6 +9,8 @@ export interface Config { cache: Path data: Path + dist: string + options: { /// prefer xz or gz for bottle downloads compression: 'xz' | 'gz' @@ -53,6 +55,7 @@ export function ConfigDefault(env = Deno.env.toObject()): Config { const pantries = env['PKGX_PANTRY_PATH']?.split(SEP).compact(x => flatmap(x.trim(), x => Path.abs(x) ?? Path.cwd().join(x))) ?? [] const cache = (flatmap(env["XDG_CACHE_HOME"], Path.abs) ?? platform_cache_default(home, env)).join("pkgx") const data = (flatmap(env["XDG_DATA_HOME"], Path.abs) ?? platform_data_home_default(home, env)).join("pkgx") + const dist = env['PKGX_DIST_URL']?.trim() ?? 'https://dist.pkgx.dev' const isCI = boolize(env['CI']) ?? false const UserAgent = flatmap(getv(), v => `libpkgx/${v}`) ?? 'libpkgx' //TODO prefer 'xz' on Linux (as well) if supported @@ -63,6 +66,7 @@ export function ConfigDefault(env = Deno.env.toObject()): Config { pantries, cache, data, + dist, UserAgent, options: { compression, diff --git a/src/hooks/useInventory.ts b/src/hooks/useInventory.ts index b5554c3..95592db 100644 --- a/src/hooks/useInventory.ts +++ b/src/hooks/useInventory.ts @@ -4,6 +4,7 @@ import SemVer from "../utils/semver.ts" import useFetch from "./useFetch.ts" import host from "../utils/host.ts" import "../utils/misc.ts" +import useConfig from "./useConfig.ts"; export interface Inventory { [project: string]: { @@ -25,7 +26,7 @@ const select = async (rq: PackageRequirement | Package) => { const get = async (rq: PackageRequirement | Package) => { const { platform, arch } = host() - const url = new URL(`https://dist.pkgx.dev/${rq.project}/${platform}/${arch}/versions.txt`) + const url = new URL(`${useConfig().dist}/${rq.project}/${platform}/${arch}/versions.txt`) const rsp = await useFetch(url) if (!rsp.ok) { diff --git a/src/hooks/useOffLicense.ts b/src/hooks/useOffLicense.ts index f152d93..a160e1b 100644 --- a/src/hooks/useOffLicense.ts +++ b/src/hooks/useOffLicense.ts @@ -1,5 +1,6 @@ import { Stowage } from "../types.ts" import host from "../utils/host.ts" +import useConfig from "./useConfig.ts"; type Type = 's3' @@ -24,5 +25,5 @@ function key(stowage: Stowage) { } function url(stowage: Stowage) { - return new URL(`https://dist.pkgx.dev/${key(stowage)}`) + return new URL(`${useConfig().dist}/${key(stowage)}`) }