diff options
| -rw-r--r-- | config/init.lua | 65 | ||||
| -rw-r--r-- | config/pkgit.lua | 3 |
2 files changed, 37 insertions, 31 deletions
diff --git a/config/init.lua b/config/init.lua index a6a2044..dfaa68d 100644 --- a/config/init.lua +++ b/config/init.lua @@ -2,65 +2,70 @@ local pkgit = require("pkgit") local cfg = {} local prefix = os.getenv("HOME").."/.local" -cfg.dirs = { +cfg.dirs = { -- where everything is downloaded/installed to prefix = prefix, - src = prefix.."/share/pkgit", + src = prefix.."/share/pkgit", -- source code (before compile/install) is downloaded here bin = prefix.."/bin", lib = prefix.."/lib", include = prefix.."/include", } -cfg.fetchers = {} +cfg.fetchers = {} -- fetches the source code and newest version of any given package cfg.fetchers.git = { - get_source = function(url, version) return pkgit.run({ - "git clone --branch "..version.." --recursive --depth 1 "..url + -- returns the exit code. 0 is success, anything else is failure. + get_source = function(url, version, name) return pkgit.run({ + "git clone --branch "..version.." --recursive --depth 1 "..url.. + " "..cfg.dirs.src.."/"..name.."/"..version }) end, + + -- returns a string 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" + "git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags "..url.." '*.*.*' | tail --lines=1 | cut --delimiter='/' --fields=3" ):read("*a") end, } +-- the default fetch method (used when you don't provide one in pkgs) cfg.fetchers.default = cfg.fetchers.git cfg.recipes = {} cfg.recipes.make = { + --setup = function() + -- return 0 + --end, build = function(bldit_build) - return pkgit.run({"make"}) + return pkgit.run({"make"}, true) end, install = function(bldit_install) - return pkgit.run({"make install PREFIX="..prefix}) + return pkgit.run({"make install PREFIX="..cfg.dirs.prefix}, true) end, remove = function(bldit_remove) - return pkgit.run({"make uninstall PREFIX="..prefix}) + return pkgit.run({"make uninstall PREFIX="..cfg.dirs.prefix}, true) end, } -local builds = { - make = { - files = { - "makefile", - "Makefile", - "Makefile.am", - }, - recipe = cfg.recipes.make - } +cfg.recipes.meson = { + setup = function() + return pkgit.run({"meson setup build --prefix "..cfg.dirs.prefix}, true) + end, + build = function() + return pkgit.run({"meson compile -C build"}, true) + end, + install = function() + return pkgit.run({"cd build && meson install"}, true) + end, + remove = function() + return pkgit.run({"cd build && ninja uninstall"}, true) + end, } -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, - } - }, + dependencies = { luajit = { + url = "https://luajit.org/git/luajit.git", + version = "v2.1", + fetcher = cfg.fetchers.git, + }}, opts = {}, recipe = cfg.recipes.make, } diff --git a/config/pkgit.lua b/config/pkgit.lua index 718e761..3cb894d 100644 --- a/config/pkgit.lua +++ b/config/pkgit.lua @@ -5,7 +5,8 @@ local M = {} function M.run(items, verbose) local cmd = io.popen('set -e &&\n'..table.concat(items,"&&\n")) if cmd == nil then return 1 end - if verbose then print(cmd:read("*a")) end + output = cmd:read("*a") + if verbose then print(output) end local rc = {cmd:close()} if rc[1] then return 0 else return 1 |
