local pkgit = require("pkgit") local cfg = {} local prefix = os.getenv("HOME").."/.local" cfg.dirs = { prefix = prefix, src = prefix.."/share/pkgit", bin = prefix.."/bin", lib = prefix.."/lib", include = prefix.."/include", } cfg.fetchers = {} cfg.fetchers.git = { get_source = function(url, version) return pkgit.run({ "git clone --branch "..version.." --recursive --depth 1 "..url }) end, get_version = function(url) return io.popen( "git -c 'versionsort.suffix=-' \ ls-remote --exit-code --refs --sort='version:refname' \ --tags "..url.." '*.*.*' \ | tail --lines=1 \ | cut --delimiter='/' --fields=3" ):read("*a") end, } cfg.fetchers.default = cfg.fetchers.git cfg.recipes = {} cfg.recipes.make = { build = function(bldit_build) return pkgit.run({"make"}) end, install = function(bldit_install) return pkgit.run({"make install PREFIX="..prefix}) end, remove = function(bldit_remove) return pkgit.run({"make uninstall PREFIX="..prefix}) end, } local builds = { make = { files = { "makefile", "Makefile", "Makefile.am", }, recipe = cfg.recipes.make } } cfg.recipes.default = function(final_dir) return pkgit.autodetect(builds, final_dir) end cfg.pkgs = {} cfg.pkgs.pkgit = { url = "https://git.symlinx.net/pkgit", version = "HEAD", fetcher = cfg.fetchers.git, dependencies = { luajit = { url = "https://luajit.org/git/luajit.git", version = "v2.1", fetcher = cfg.fetchers.git, } }, opts = {}, recipe = cfg.recipes.make, } return cfg