packager/package.example.toml
2023-10-14 22:39:52 +02:00

107 lines
3.3 KiB
TOML

#* = required.
[package]
name = "packager" #*
description = "A package installation tool" #*
## package.version
# needs to be an int and be incremented every time
# if you use a custom version system and want to use that, you can use the tag system!
# the highest package.version on the server will be given the tag "latest"
version = 1 # this can automatically be incremented when publishing by running `pkgr publish -i ...`
## package.tags
# you can add tags to a package to specify kinds
# there are some special tags:
# - latest
# automatically set on the last published version
# previous version will lose this tag
# - oldest
# assigned to the first version.
tags = [ "prod", "pkgr-spec-1" ]
## package.type
# Supported types:
# - application
# this type specifies that this package is an application.
# - library
# this type specifies that this package is a library.
# - meta
# this type specifies that this package does not install anything upon the system except for dependencies.
type = "application"
arch = "x86_64" # this is automatically filled by `pkgr publish ...`
## dependencies
# you may use the following syntax
# "<version/tag>" or "<version/tag>,<version/tag>,..."
[dependencies]
#example = { arch = "x86_64", tags = [ "stable" ], version = "v1" }
exnmbr2 = "v1,stable"
## fs
# specify some directories for ease of use
[fs]
## fs.config
# specifiy the config path
config = "/etc/packager"
## fs.data
# specify the data path
data = "/var/lib/packager"
## replace "pacakger" with your package name to find the default value.
## bin
# Used for systems that don't want to build pkgs.
[bin] # binary files root
## bin.root
# ** RELATIVE TO PACKAGE ROOT **
# bin.root specifies the root of the installed tree.
# anything in here will be overlayed on top of the system.
root = "/root" #*
## bin.checksums
# ** KEYS are relative to BIN.ROOT **
# ** VALUES are relative to PKG ROOT **
# checksums is used to perform checksums before install
# values may be paths or a uri. You may include variables.
# supported variables:
# - @name
# - @version
# - @display_version
[bin.checksums]
"/usr/bin/pkgr" = "https://ixvd.net/checksums/packager/@version"
## build
# Scripts will be copied to a custom root.
# After the pacakge is built, the install script is ran.
# After the install script the build directory will be deleted and an CTREE (changed tree) will be generated.
# Then the CTREE will be used to copy the files over.
[build]
build_script = "scripts/build" # relative to pkg
install_script = "scripts/install" # relative to pkg
[build.dependencies]
base = "latest,stable" # selected by default
## ext.*
# packager is the official client but you may use other clients supporting the "pkgr v1 spec".
# other clients may offer extra functionality this must be put under "ext.*"
[ext]
## ext.bootstrap
# This section is used for bootpkg. An edition of packager that bootstraps the full version.
# This exists so that packager is easy to install on anything!
# and only 1 release channel for pkgr
[ext.bootstrap]
## any non-zero = installed
check_installed_commands = [
"sh scripts/check_installed"
]
# any non-zero = fail
commands = [
"sh scripts/bootstrap/download_latest @version /tmp/pkgr.pkg",
"sh scripts/bootstrap/dirty_install /tmp/pkgr.pkg",
"sh scripts/check_installed"
]