~ruther/guix-local

e3fd0ce6969a62665a1eaedccebb6b21ced1e86f — Ludovic Courtès 11 years ago 368d08f
store: Add 'optimize-store' RPC.

* guix/store.scm (operation-id): Add 'optimize-store'.
  (optimize-store): New procedure.
1 files changed, 9 insertions(+), 1 deletions(-)

M guix/store.scm
M guix/store.scm => guix/store.scm +9 -1
@@ 90,6 90,7 @@
            references
            requisites
            referrers
            optimize-store
            topologically-sorted
            valid-derivers
            query-derivation-outputs


@@ 171,7 172,8 @@
  (query-substitutable-path-infos 30)
  (query-valid-paths 31)
  (query-substitutable-paths 32)
  (query-valid-derivers 33))
  (query-valid-derivers 33)
  (optimize-store 34))

(define-enumerate-type hash-algo
  ;; hash.hh


@@ 760,6 762,12 @@ substitutable.  For each substitutable path, a `substitutable?' object is
returned."
             substitutable-path-list))

(define-operation (optimize-store)
  "Optimize the store by hard-linking identical files (\"deduplication\".)
Return #t on success."
  ;; Note: the daemon in Guix <= 0.8.2 does not implement this RPC.
  boolean)

(define (run-gc server action to-delete min-freed)
  "Perform the garbage-collector operation ACTION, one of the
`gc-action' values.  When ACTION is `delete-specific', the TO-DELETE is