pm

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

README (1914B)


      1 # pm
      2 
      3 A pack manager.
      4 
      5 ## usage
      6 `pm` has only a few commands in order to keep it simple to use:
      7 
      8 	pm [-adfiuv] [packs..]
      9 
     10 	# delete packs
     11 	pm -d pack [pack..]
     12 
     13 	# update packs
     14 	pm -u pack#0.1.tar.bz2 [pack..]
     15 
     16 	# list installed packs
     17 	pm -i
     18 
     19 	# list files installed by a pack
     20 	pm -i pack
     21 
     22 ## pack format
     23 Packs are simple bzip2 compressed tarballs files meant to be extracted to your
     24 $ROOT. Once extracted, the list of files installed (relative to your $ROOT will
     25 be written to a file in your $META directory, under a subdirectory named after
     26 your pack.
     27 
     28 	$ ROOT=/ns/pm/rootfs
     29 	$ META=$ROOT/metadata
     30 	$ export ROOT META
     31 	$ pm -a ./pack#0.0.tar.bz2
     32 	$ tree $ROOT
     33 	/ns/pm/rootfs
     34 	|-- bin
     35 	|   `-- pack
     36 	|-- metadata
     37 	|   `-- pack
     38 	|       |-- files
     39 	|       `-- version
     40 	`-- share
     41 	    `-- man
     42 		`-- man1
     43 		    `-- pack.1
     44 
     45 The name of a pack should be constructed as follow:
     46 
     47 	${NAME}${SEPARATOR}${VERSION}${EXTENSTION}
     48 
     49 NAME:       name of the pack
     50 VERSION:    version of the pack
     51 SEPARATOR:  a unique char within the whole pack name
     52 EXTENSTION: whichever extenstion you want
     53 
     54 The format used by default is pack#version.tar.bz2
     55 As example, the following pack names are valid:
     56 
     57 * pack:0.0-1.tar.bz2
     58 * pack#0.0-1.pkg
     59 * pack,0.0-1:pack
     60 * pack_0.0-1.tar.bz2
     61 
     62 On the other side, the following are NOT valid:
     63 
     64 * pack-0.0-1.tar.bz2
     65 * pack.0.0-1.pkg
     66 * pack_name_0.0.tar.bz2
     67 * pack#0.0-1#tar.bz2
     68 
     69 
     70 ## goals
     71 0. install
     72 	0.0 recall installed files
     73 	0.1 NEVER overwrite an existing file
     74 	0.2 Multiple archive format?
     75 
     76 1. update
     77 	1.0 check versions from a local file
     78 	1.1 check for (st_ctime - st_mtime) == 0
     79 	1.2 remove unneeded file
     80 
     81 2. remove
     82 	2.0 remove directories left empty
     83 
     84 3. inspect
     85 	3.0 inspect system for installed packs
     86 	3.1 inspect files installed by a pack
     87 
     88 4. metadata
     89 	4.0 store pack versions
     90 	4.1 store installed files
     91 
     92 ## license
     93 This software is licensed under the ISC license, see the LICENSE file provided.