Alex Kost <alez...@gmail.com> skribis: > Now about the second patch. At first, I don't agree with it :-). I > added #:dry-run? to ‘build-package’ procedure as I think it may be > useful, then I found a nice ‘maybe-build’ procedure in (guix scripts > system), and I just moved it to (guix scripts build) which doesn't seem > right. > > We have some code in (guix scripts …) that is rather common (I mean not > specific to the current module), but there is no better place for it, > usually because it uses (guix ui). > > So what about making (guix scripts) module for such general stuff? > I think we can move there ‘maybe-build’, ‘%standard-build-options’, > ‘set-build-options-from-command-line(*)’, ‘show-build-options-help’, > perhaps exported procedures from (guix scripts package). And > ‘build-package’ may also go there, WDYT? > > Or maybe just put those things into (guix ui)?
(guix ui) has become fat; (guix scripts) sounds like a good idea. Then things like ‘args-fold*’, ‘parse-command-line’, ‘run-guix-command’, ‘run-guix’, ‘guix-main’, and ‘program-name’ should probably move there as well (unless I’m overlooking something that would prevent this), along with ‘maybe-build’ and ‘build-package’. How does that sound? > From 9ffc27f7a076e4213ef3bee00e5cebad501685ac Mon Sep 17 00:00:00 2001 > From: Alex Kost <alez...@gmail.com> > Date: Thu, 23 Jul 2015 16:16:41 +0300 > Subject: [PATCH 2/2] guix build: Add 'build-package'. > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > * guix/scripts/system.scm (maybe-build): Move to ... > * guix/scripts/build.scm: ...here. > (build-package): New procedure. > > Co-authored-by: Ludovic Courtès <l...@gnu.org> [...] > +(define* (build-package package > + #:key (use-substitutes? #t) (dry-run? #f) > + #:allow-other-keys > + #:rest build-options) > + "Build PACKAGE using BUILD-OPTIONS. > +Show what and how will/would be built." > + (with-store store > + (run-with-store store > + (mbegin %store-monad > + (apply set-build-options* Please remove ‘with-store’ and ‘run-with-store’. This should be done on the Emacs side (maybe via the ,run-in-store meta-command?). Thanks, Ludo’.