[arch-projects] [ABS] [RFC] the new abs utility design

matt mooney mfm at muteddisk.com
Mon Jun 13 22:35:12 EDT 2011


Hello everyone,

I am matt mooney, a.k.a. mfm, the new ABS developer and eventual maintainer ;)
Currently, I am working on a new abs utility, and I would like opinions on the
design before I fully implement it.

mfm:pts/15[~/src/abs]
Jun13 19:25:28 % ./abs
usage: abs [-h] [--version] [--abs-root=<path>]
           [--build-dir=<path>] [--pkg-dir=<path>]
           [--noconfirm]
           <command>... [<pkgspec>...]

optional arguments:
  -h, --help          Print the synopsis and command list
  --version           Print the ABS version and exit
  --abs-root <path>   Path to the ABS tree
  --build-dir <path>  Path to the build directory
  --pkg-dir <path>    Path to the directory where packages will be output
  --noconfirm         Bypass all confirmation messages generated by pacman

commands:
  build       Build packages in the ABS tree
  clean       Clean the build directory
  install     Install packages
  patch       Apply patches to packages in the ABS tree.
  sync        Synchronize the ABS tree with the current snapshot
mfm:pts/15[~/src/abs]
Jun13 19:25:30 % 

At first I was going to design it to run single commands, such as `abs build'
but I felt that would lead to one of two things: 1) a lot of duplicate options
to accomplish the other commands without specifying them, or 2) default command
chains running to avoid explicitly having to run every command manually (i.e.,
an `abs install' would implicitly run an `abs sync' then an `abs build` followed
by an `abs install'). So, instead, I decided to support explicit command chains,
such as `abs sync build install clean emacs'.

Nothing is set in stone yet. And I am really interested in hearing suggestions
from other people on what they would like to see from the abs utility. I think
one feature noticeably absent is the ability to rebuild all currently installed
packages from source without having to explicitly specify them.

The manpages have all been attached to this email for easier viewing using
`man'; furthermore, each asciidoc manpage is threaded along with this email for
inline comments.

My git repo can be found at http://projects.archlinux.org/users/mfm/abs.git/.

Thanks,
matt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ABS.7.gz
Type: application/x-gzip
Size: 1796 bytes
Desc: not available
URL: <http://mailman.archlinux.org/pipermail/arch-projects/attachments/20110613/16537279/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: abs.8.gz
Type: application/x-gzip
Size: 3263 bytes
Desc: not available
URL: <http://mailman.archlinux.org/pipermail/arch-projects/attachments/20110613/16537279/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: abs.conf.5.gz
Type: application/x-gzip
Size: 2892 bytes
Desc: not available
URL: <http://mailman.archlinux.org/pipermail/arch-projects/attachments/20110613/16537279/attachment-0005.bin>


More information about the arch-projects mailing list