diff options
Diffstat (limited to 'config/init.lua')
| -rw-r--r-- | config/init.lua | 247 |
1 files changed, 0 insertions, 247 deletions
diff --git a/config/init.lua b/config/init.lua deleted file mode 100644 index 0557a89..0000000 --- a/config/init.lua +++ /dev/null @@ -1,247 +0,0 @@ ---[[ introduction - - this is the pkgit configuration template. - every configuration file is written in lua, - the embeddable high-level programming language. - - for info on how to write lua, check out - this website for documentation: - https://www.lua.org/pil/contents.html - - all variables that are - set by default are designed to - work out of the box. be sure to - keep the global variables global, - as they need to be global in - order for them to work with - each other effectively. - - `local install_directories`, for - example, will not work well in - most cases. - -]] - ---[[ prefix - - the prefix variable is necessary - for custom install paths, which - bldit maintainers should be - respecting with their recipes. - - if you want to install packages - without root, it's easist to - create a home variable and - append that to your prefix. - -]] -local home = os.getenv("HOME") -prefix = home.."/.local" - ---[[ install_directories - - install_directories is an essential - table that pkgit needs in order to - function. this is how it determines - where you install your packages to. - - it's most convenient when combined - with `prefix` which allows for a - more dynamic definition of your - install directories. - -]] -install_directories = { - bin = prefix.."/bin", -- binaries (executables) - -- the value of `bin` should also be set in your shell's $PATH - include = prefix.."/include", -- C headers - lib = prefix.."/lib", -- libraries (shared objects) - src = prefix.."/share/pkgit", -- source code -} - ---[[ repositories - - this is where all your repos need to - end up. every repo has a name, which - can be written out normally - (`name = {...}`), or for some repos, - it might be necessary to wrap it in - quotes (`["name"] = {...}`). - that name can be used in a pkgit - command to be installed. - ( `pkgit --install [repo]` ) - - each of these repos must be structured - as a lua table. the structure is - demonstrated below. - -]] -repositories = { - pkgit = { - url = "https://git.symlinx.net/pkgit", - --[[ repo example - - no targets table or dependencies are actually needed in - this specific case, pkgit has a bldit.lua which guarantees - that it will compile & install (as long as `install_directories` - and `prefix` are set up). - - if you do make a targets table here, it will take priority - over the bldit.lua in the repo, and your build system - autodetection config ( `build_systems = {...}` ) - - more about `targets` in the global `build_systems` table. - - ]] - --dependencies = { - -- name = { - -- url = {...}, - -- version = "...", - -- target = "...", - -- }, - --}, - --targets = { - -- default = { - -- build = function() - -- return os.execute("make") - -- - -- -- ^ make sure to return the exit code of os.execute ^ -- - -- - -- end, - -- install = function() - -- return os.execute("make install PREFIX="..prefix) - -- end, - -- uninstall = function() - -- return os.execute("make uninstall PREFIX="..prefix) - -- end, - -- } - --} - }, -} - ---[[ build_systems - - this table contains all of the automatic - build system detection necessary for pkgit - to work without bldit.lua or `repositories = {...}`. - - this works by creating a table named after the - filename associated with the build system that - is found in the root directory of a package. - - by associating a filename with a build system, - pkgit can dynamically compile and install any - package, given that they use the build system - according to the standard (or otherwise - generally popular) usage guidelines. - -]] -build_systems = { - ["Makefile"] = { - --[[ targets - - briefly mentioned above in `repositories`, - the `targets` subtable is a standard that's - consistent across all the different methods - to build a package using pkgit; meaning - you can write the same `targets` subtable - in `repositories.<pkg>`, `bldit.lua`, and - right here in `build_systems`. - - this table comes with two templates; - `default` and `quiet`. the first is pretty - self-explanatory; this is what you'd define - as the default intended behavior of the - build system. - - `quiet` is similar to `default`, in the sense - that it inherits the default intended behavior, - except that it does so while printing nothing - to the terminal. instead, ideally, it would - output its logs to a temporary file accessible - by the user running the command. - - this is why the default logs in this example - are located in `/tmp` and not `/var/log`, - because the user typically has full access to - `/tmp`, and normally not `/var/log`. - - ]] - targets = { - default = { - build = function() - return os.execute("make") - end, - install = function() - return os.execute("make install PREFIX="..prefix) - end, - uninstall = function() - return os.execute("make uninstall PREFIX="..prefix) - end, - }, - quiet = { - build = function() - return os.execute("make &>/tmp/pkgit_build.log") - end, - install = function() - return os.execute("make install PREFIX="..prefix.." &>/tmp/pkgit_build.log") - end, - uninstall = function() - return os.execute("make uninstall PREFIX="..prefix.." &>/tmp/pkgit_build.log") - end, - }, - } - }, - ["meson.build"] = { - targets = { - default = { - build = function() - return os.execute("meson setup build --prefix "..prefix.." && meson compile -C build") - end, - install = function() - return os.execute("cd build && meson install") - end, - uninstall = function() - return os.execute("cd build && ninja uninstall") - end, - }, - quiet = { - build = function() - return os.execute("meson setup build --prefix "..prefix.." &>/tmp/pkgit_build.log && meson compile -C build &>/tmp/pkgit_build.log") - end, - install = function() - return os.execute("cd build && meson install &>/tmp/pkgit_build.log") - end, - uninstall = function() - return os.execute("cd build && ninja uninstall &>/tmp/pkgit_build.log") - end, - }, - } - }, - ["CMakeLists.txt"] = { - targets = { - default = { - build = function() - return os.execute("cmake -B build && cmake --build build") - end, - install = function() - return os.execute("cmake --build . --target install") - end, - uninstall = function() - return os.execute("xargs rm < install_manifest.txt") - end, - }, - quiet = { - build = function() - return os.execute("cmake -B build &>/tmp/pkgit_build.log && cmake --build build &>/tmp/pkgit_build.log") - end, - install = function() - return os.execute("cmake --build . --target install &>/tmp/pkgit_build.log") - end, - uninstall = function() - return os.execute("xargs rm < install_manifest.txt &>/tmp/pkgit_build.log") - end, - }, - } - }, -} |
