diff --git a/toolchain/builder/zeta-makepkg b/toolchain/builder/zeta-makepkg index 95242be..fa15e36 100755 --- a/toolchain/builder/zeta-makepkg +++ b/toolchain/builder/zeta-makepkg @@ -69,6 +69,8 @@ Commands: Flags: --output Output repository root (default: .) Creates packages// with tarball + package.lua + --repo Base URL for generated package.lua manifests + (default: https://raw.githubusercontent.com/gretagen/...) -j, --jobs Number of parallel build jobs (default: nproc) --no-index Don't update packages/index.lua after building --keep-work Don't remove the build work directory @@ -99,6 +101,7 @@ local function parse_cli(args) help = false, recipe = nil, jobs = nil, -- nil = auto-detect (nproc) + repo = "https://raw.githubusercontent.com/gretagen/zeta-packages/refs/heads/main", } local i = 1 @@ -115,6 +118,13 @@ local function parse_cli(args) return nil end opts.output = args[i] + elseif a == "--repo" then + i = i + 1 + if i > #args then + io.stderr:write("error: --repo requires a URL argument\n") + return nil + end + opts.repo = args[i] elseif a == "--no-index" then opts.no_index = true elseif a == "--keep-work" then @@ -216,7 +226,7 @@ local function run_build(recipe_path, opts) local tarball_sha256 = packager.create_tarball(stage_dir, tarball_path) -- 10. Write package.lua manifest - packager.write_manifest(r, tarball_sha256, pkg_dir) + packager.write_manifest(r, tarball_sha256, pkg_dir, opts.repo) -- 11. Update index if not opts.no_index then diff --git a/toolchain/lib/packager.lua b/toolchain/lib/packager.lua index 6372fe1..c88e463 100644 --- a/toolchain/lib/packager.lua +++ b/toolchain/lib/packager.lua @@ -97,7 +97,8 @@ end -- The generated manifest uses archive mode (strip=1) and includes the -- computed sha256 of the binary tarball. Optional fields (deps, files, -- test) are included when present in the recipe. -function packager.write_manifest(recipe, tarball_sha256, pkg_dir) +function packager.write_manifest(recipe, tarball_sha256, pkg_dir, repo) + local repo = repo or "https://raw.githubusercontent.com/gretagen/zeta-packages/refs/heads/main" local lines = {} local function emit(fmt, ...) lines[#lines + 1] = string.format(fmt, ...) @@ -107,8 +108,8 @@ function packager.write_manifest(recipe, tarball_sha256, pkg_dir) emit(' name = "%s",', recipe.name) emit(' version = "%s",', recipe.version) emit(' summary = "%s",', escape(recipe.summary)) - emit(' url = "https://github.com/gretagen/zeta-packages/packages/%s/%s-%s.tar.gz",', - recipe.name, recipe.name, recipe.version) + emit(' url = "%s/packages/%s/%s-%s.tar.gz",', + repo, recipe.name, recipe.name, recipe.version) emit(' sha256 = "%s",', tarball_sha256) if #recipe.deps > 0 then