tUpdate README to reflect recent design changes - pm - barely a pack manager
(HTM) git clone git://z3bra.org/pm
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 46ebe8eca026d0e03f85bca4398c5fa42013b39a
(DIR) parent f1f8bd5a1a8fa4f66843096c09570ea0f52a3951
(HTM) Author: z3bra <willyatmailoodotorg>
Date: Wed, 13 Jan 2016 19:30:17 +0100
Update README to reflect recent design changes
Diffstat:
M README | 81 +++++++++++++++++--------------
1 file changed, 45 insertions(+), 36 deletions(-)
---
(DIR) diff --git a/README b/README
t@@ -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
t@@ -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