From 27053884d8a99204face6c4a6bddd2e93d3bcf20 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 26 Apr 2013 08:32:04 -0600 Subject: [PATCH] pkg catalog sever: get dependencies and implemented modules on update --- collects/meta/pkg-index/official/main.rkt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/collects/meta/pkg-index/official/main.rkt b/collects/meta/pkg-index/official/main.rkt index 50844113b1..2c60ad2a19 100644 --- a/collects/meta/pkg-index/official/main.rkt +++ b/collects/meta/pkg-index/official/main.rkt @@ -8,6 +8,7 @@ racket/runtime-path web-server/dispatch pkg/util + (prefix-in pkg: pkg/lib) racket/match racket/package racket/system @@ -718,11 +719,24 @@ (define* i (hash-set i 'last-checked now)) (define* i - (if (and new-checksum (equal? new-checksum old-checksum)) + (if (and new-checksum (equal? new-checksum old-checksum) + ;; update if 'modules was not present: + (hash-ref i 'modules #f)) i - (hash-set i 'last-updated now))) + (hash-set (update-from-content i) 'last-updated now))) (package-info-set! pkg-name i)))) +(define (update-from-content i) + (define-values (checksum module-paths dependencies) + (pkg:get-pkg-content (pkg:pkg-desc (hash-ref i 'source) + #f + (hash-ref i 'checksum) + #f))) + (package-begin + (define* i (hash-set i 'modules module-paths)) + (define* i (hash-set i 'dependencies dependencies)) + i)) + (define basic-start (pkg-index/basic package-list package-info))