pm

barely a pack manager
git clone git://z3bra.org/pm
Log | Files | Refs | README | LICENSE

commit 46ebe8eca026d0e03f85bca4398c5fa42013b39a
parent f1f8bd5a1a8fa4f66843096c09570ea0f52a3951
Author: z3bra <willyatmailoodotorg>
Date:   Wed Jan 13 19:30:17 2016

Update README to reflect recent design changes

Diffstat:
 README | 79 +++++++++++++++++++++++++++++++++++++------------------------------
 1 file changed, 44 insertions(+), 35 deletions(-)

diff --git a/README b/README @@ -3,20 +3,15 @@ A pack manager. ## usage -`pm` has only a few commands, to keep it dead simple to use: +`pm` has only a few commands in order to keep it simple to use: -### add -You can install a pack to your local system by adding it with + pm [-adfiuv] [packs..] - pm -a pack:0.1.tar.bz2 + # delete packs + pm -d pack [pack..] -### delete -To remove a pack from your system, use its name: - - pm -d pack - -### inspect -You can inspect the current state of your system, or packs with the -i flag: + # update packs + pm -u pack:0.1.tar.bz2 [pack..] # list installed packs pm -i @@ -24,36 +19,50 @@ You can inspect the current state of your system, or packs with the -i flag: # list files installed by a pack pm -i pack - # list the content of an archive - pm -i pack:0.1.tar.bz2 +## pack format +Packs are simple bzip2 compressed tarballs files meant to be extracted to your +$ROOT. Once extracted, the list of files installed (relative to your $ROOT will +be written to a file in your $META directory, under a subdirectory named after +your pack. + + $ ROOT=/ns/pm/rootfs + $ META=$ROOT/metadata + $ export ROOT META + $ pm -a ./pack:0.0.tar.bz2 + $ tree $ROOT + /ns/pm/rootfs + ├── bin + │   └── pm + ├── metadata + │   └── pack + │   ├── files + │   └── version + └── share + └── man + └── man1 + └── pm.1 ## goals 0. install - 0.0 resolve dependencies - 0.1 differenciate explicit install and deps - 0.2 recall installed files - 0.3 recall dependencies - 0.4 accept multiple repositories (order matter) - 0.5 NEVER overwrite an existing file + 0.0 recall installed files + 0.1 NEVER overwrite an existing file + 0.2 Multiple archive format? + 1. update 1.0 check versions from a local file - 1.1 update repo by downloading a newer version - 1.2 assume repo to have the latest version - 1.3 warn about dep/filesystem changes - 1.4 NEVER overwrite an existing file + 1.1 check for (st_ctime - st_mtime) == 0 + 1.2 remove unneeded file + 2. remove - 2.0 remove deps not needed by other packages - 2.1 remove directories left empty (two-pass removal) -3. list - 2.0 list packages in repo - 2.1 list files in packages (cache needed for remote) - 2.2 list dependencies of a package (tree view) -4. metadata - 4.0 store everything into a single directory - 4.1 $ROOT/pm.d/$pkg/{deps,files,version[,explicit]} - 4.2 cache packages locally + 2.0 remove directories left empty +3. inspect + 3.0 inspect system for installed packs + 3.1 inspect files installed by a pack + +4. metadata + 4.0 store pack versions + 4.1 store installed files ## license -This software is licensed under the ISC license, see the -LICENSE file provided.- \ No newline at end of file +This software is licensed under the ISC license, see the LICENSE file provided.+ \ No newline at end of file