From 3ae746e5ac3f8feb80a8619127956fb93ba47ca0 Mon Sep 17 00:00:00 2001 From: Jack Jamison Date: Mon, 20 Jul 2026 12:08:18 -0400 Subject: start snag program and defining package format --- snag/readme.txt | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 snag/readme.txt (limited to 'snag/readme.txt') diff --git a/snag/readme.txt b/snag/readme.txt new file mode 100644 index 0000000..ef15404 --- /dev/null +++ b/snag/readme.txt @@ -0,0 +1,31 @@ +# SNAG Package Manager + +## Useful Subcommands +`install`/`inst` - install the specified package(s) (default) +`remove` - uninstall the specified package(s) +`upgrade/'up` - upgrade the package database +`find`/`search` - list packages whose metadata matches specified search string +`info`/`desc` - describe the metadata of the specified package(s) + +`files` - list the installed files of the specified package(s) +`log` - open your pager to the build log of the specified package +`reason` - list why this package is installed (manually installed, as a dependency, from a group) + +## Terminology +"Package Database" - the directory containing package descriptions +"Install Database" - the directory containing information on installed package +"Package Description" - the directory and script containing build instructions for a package +"Package Info/Metadata" - the metadata encoded in the package description +"Package Attribute" - a single key value property of the package info + +## Package Format +Each package has a directory in the package database, named by its `id`. +Inside each package directory is the description script named `{id}.sh` +The description script should have functions for `configure`, `build`, and `install` +The description script should define variables for attributes with the name `pkg_{attr}` +> We're still deciding if we want the metadata to be split from the instruction in separate file(s). + +Packages have the following attributes: +`id` - the identifier name of the package. everything uses this +`name` - the display name of package +`desc` - the short description of the package -- cgit v1.2.3