File: setup.rkt

package info (click to toggle)
racket 7.9%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 178,684 kB
  • sloc: ansic: 282,112; lisp: 234,887; pascal: 70,954; sh: 27,112; asm: 16,268; makefile: 4,613; cpp: 2,715; ada: 1,681; javascript: 1,244; cs: 879; exp: 499; csh: 422; python: 274; xml: 106; perl: 104
file content (85 lines) | stat: -rw-r--r-- 3,131 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#lang racket/base
(require "option.rkt"
         "setup-core.rkt"
         launcher/launcher
         compiler/compiler
         compiler/cm)

(provide setup)

(define (setup #:file [file #f]
               #:get-target-dir [get-target-dir #f]
               #:planet-specs [planet-specs #f]
               #:collections [collections #f]
               #:pkgs [pkgs #f]
               #:make-docs? [make-docs? #t]
               #:make-doc-index? [make-doc-index? #f]
               #:make-user? [make-user? #t]
               #:clean? [clean? #f]
               #:tidy? [tidy? #f]
               #:avoid-main? [avoid-main? #f]
               #:force-user-docs? [force-user-docs? #f]
               #:jobs [parallel #f]
               #:recompile-only? [recompile-only? #f]
               #:fail-fast? [fail-fast? #f]
               #:check-pkg-deps? [always-check-dependencies? #f]
               #:fix-pkg-deps? [fix-dependencies? #f]
               #:unused-pkg-deps? [check-unused-dependencies? #f])
  (parameterize 
   (;; Here's where we tell setup the archive file:
    [archives (if (or clean? (not file)) (archives) (list file))]
    [archive-implies-reindex (if (and planet-specs (and (not clean?) file))
                                 #f
                                 (archive-implies-reindex))]
    
    ;; Here's where we make get a directory:
    [current-target-directory-getter get-target-dir]
    
    [specific-planet-dirs (if planet-specs planet-specs (specific-planet-dirs))]
    
    [specific-collections (if collections collections (specific-collections))]

    [specific-packages (if pkgs pkgs (specific-packages))]
    
    [make-only (if (or planet-specs collections) #t (make-only))]
    
    [make-user (if make-user? (make-user) #f)]
    
    [make-docs (if (and make-docs? (not clean?)) (make-docs) #f)]
    
    [make-doc-index (if make-doc-index? #t (make-doc-index))]

    [make-tidy (if tidy? #t (make-tidy))]

    [avoid-main-installation (if avoid-main? #t (avoid-main-installation))]

    [force-user-docs (if force-user-docs? #t (force-user-docs))]

    [fail-fast fail-fast?]
    
    [clean (if clean? #t (clean))]
    [make-zo (if clean? #f (make-zo))]
    [make-launchers (if clean? #f (make-launchers))] 
    [make-info-domain (if clean? #t (make-info-domain))]
    [call-install (if clean? #f (call-install))]

    [fix-dependencies fix-dependencies?]
    [check-unused-dependencies check-unused-dependencies?]
    [always-check-dependencies (or fix-dependencies?
                                   check-unused-dependencies?
                                   always-check-dependencies?)]
    
    [setup-program-name "raco setup"]

    [recompile-only recompile-only?]
    [managed-recompile-only recompile-only?]
    [parallel-workers (if parallel parallel (parallel-workers))])

   (let/ec esc
     (parameterize ([exit-handler
                     (lambda (v) (esc (if (and (integer? v)
                                               (<= 1 v 255))
                                          #f
                                          #t)))])
       (setup-core)
       #t))))