SPAN - question? case procedure
This commit is contained in:
parent
1741522dd0
commit
1cc9d34578
|
@ -51,31 +51,31 @@
|
|||
procedure))
|
||||
|
||||
(define SPAN-shell-droptext-1
|
||||
"The following questions are intended to help you with the
|
||||
"1. The following questions are intended to help you with the
|
||||
configuration. The SPAN module needs a directory of its own to cache
|
||||
important index files and maybe keep a temporary mirror of SPAN files.
|
||||
This may be a site-wide or a personal directory.")
|
||||
|
||||
(define SPAN-shell-droptext-2
|
||||
"Unless you are accessing the CPAN on your filesystem via a file: URL,
|
||||
"2. Unless you are accessing the CPAN on your filesystem via a file: URL,
|
||||
CPAN.pm needs to keep the source files it downloads somewhere. Please
|
||||
supply a directory where the downloaded files are to be kept.")
|
||||
|
||||
(define SPAN-shell-droptext-3
|
||||
"")
|
||||
"3. ")
|
||||
|
||||
(define SPAN-shell-droptext-4
|
||||
"Normally CPAN.pm keeps config variables in memory and changes need to
|
||||
"4. Normally CPAN.pm keeps config variables in memory and changes need to
|
||||
be saved in a separate 'o conf commit' command to make them permanent
|
||||
between sessions. If you set the 'auto_commit' option to true, changes
|
||||
to a config variable are always automatically committed to disk.")
|
||||
|
||||
(define SPAN-shell-droptext-5
|
||||
"CPAN.pm can limit the size of the disk area for keeping the build
|
||||
"5. CPAN.pm can limit the size of the disk area for keeping the build
|
||||
directories with all the intermediate files.")
|
||||
|
||||
(define SPAN-shell-droptext-6
|
||||
"The CPAN indexes are usually rebuilt once or twice per hour, but the
|
||||
"6. The CPAN indexes are usually rebuilt once or twice per hour, but the
|
||||
typical CPAN mirror mirrors only once or twice per day. Depending on
|
||||
the quality of your mirror and your desire to be on the bleeding edge,
|
||||
you may want to set the following value to more or less than one day
|
||||
|
@ -83,12 +83,12 @@ you may want to set the following value to more or less than one day
|
|||
downloads new indexes.")
|
||||
|
||||
(define SPAN-shell-droptext-7
|
||||
"By default, each time the CPAN module is started, cache scanning is
|
||||
"7. By default, each time the CPAN module is started, cache scanning is
|
||||
performed to keep the cache size in sync. To prevent this, answer
|
||||
'never'.")
|
||||
|
||||
(define SPAN-shell-droptext-8
|
||||
"To considerably speed up the initial CPAN shell startup, it is
|
||||
"8. To considerably speed up the initial CPAN shell startup, it is
|
||||
possible to use Storable to create a cache of metadata. If Storable is
|
||||
not available, the normal index mechanism will be used.
|
||||
|
||||
|
@ -96,7 +96,7 @@ Note: this mechanism is not used when use_sqlite is on and SQLLite is
|
|||
running.")
|
||||
|
||||
(define SPAN-shell-droptext-9
|
||||
"The CPAN module can detect when a module which you are trying to build
|
||||
"9. The CPAN module can detect when a module which you are trying to build
|
||||
depends on prerequisites. If this happens, it can build the
|
||||
prerequisites for you automatically ('follow'), ask you for
|
||||
confirmation ('ask'), or just ignore them ('ignore'). Please set your
|
||||
|
@ -201,35 +201,54 @@ policy to one of the three values.")
|
|||
;; Your no_proxy? []")
|
||||
|
||||
(define SPAN-shell-droptext-20
|
||||
"CPAN needs access to at least one CPAN mirror.
|
||||
"20. CPAN needs access to at least one CPAN mirror.
|
||||
|
||||
As you did not allow me to connect to the internet you need to supply
|
||||
a valid CPAN URL now.
|
||||
")
|
||||
|
||||
(define SPAN-shell-droptext-21
|
||||
"Enter another URL or RETURN to quit: []")
|
||||
"21. Enter another URL or RETURN to quit: []")
|
||||
|
||||
(define SPAN-shell-droptext-22
|
||||
"Please remember to call 'o conf commit' to make the config permanent!
|
||||
"22. Please remember to call 'o conf commit' to make the config permanent!
|
||||
|
||||
|
||||
cpan shell -- CPAN exploration and modules installation (v1.9402)
|
||||
Enter 'h' for help.")
|
||||
|
||||
(define questions (make-table))
|
||||
(table-set! questions SPAN-shell-droptext-1)
|
||||
(table-set! questions SPAN-shell-droptext-2)
|
||||
(table-set! questions SPAN-shell-droptext-3)
|
||||
(table-set! questions SPAN-shell-droptext-4)
|
||||
(table-set! questions SPAN-shell-droptext-5)
|
||||
(table-set! questions SPAN-shell-droptext-6)
|
||||
(table-set! questions SPAN-shell-droptext-7)
|
||||
(table-set! questions SPAN-shell-droptext-8)
|
||||
(table-set! questions SPAN-shell-droptext-9)
|
||||
(table-set! questions SPAN-shell-droptext-20)
|
||||
(table-set! questions SPAN-shell-droptext-21)
|
||||
(table-set! questions SPAN-shell-droptext-22)
|
||||
(table-set! questions 1 SPAN-shell-droptext-1)
|
||||
(table-set! questions 2 SPAN-shell-droptext-2)
|
||||
(table-set! questions 3 SPAN-shell-droptext-3)
|
||||
(table-set! questions 4 SPAN-shell-droptext-4)
|
||||
(table-set! questions 5 SPAN-shell-droptext-5)
|
||||
(table-set! questions 6 SPAN-shell-droptext-6)
|
||||
(table-set! questions 7 SPAN-shell-droptext-7)
|
||||
(table-set! questions 8 SPAN-shell-droptext-8)
|
||||
(table-set! questions 9 SPAN-shell-droptext-9)
|
||||
(table-set! questions 20 SPAN-shell-droptext-20)
|
||||
(table-set! questions 21 SPAN-shell-droptext-21)
|
||||
(table-set! questions 22 SPAN-shell-droptext-22)
|
||||
|
||||
(define table-range
|
||||
(lambda (x y)
|
||||
(let ((l '()))
|
||||
(cond ((< x y)
|
||||
(do ((i x (+ i 1)))
|
||||
((= x y) l)
|
||||
(set! l (append l (table-ref questions i)))))
|
||||
((< y x)
|
||||
(do ((i y (+ i 1)))
|
||||
((= y x) l)
|
||||
(set! l (append l (table-ref questions i)))))
|
||||
(else (display-msg "range : x == y")
|
||||
x)))))
|
||||
|
||||
(define question?
|
||||
(lambda (n)
|
||||
(case ((n) (string-match (table-ref n) (rx (| ((string n)))))
|
||||
(table-ref n)))))
|
||||
|
||||
(define questionaire
|
||||
(lambda (SPAN-dir)
|
||||
|
@ -238,15 +257,16 @@ Enter 'h' for help.")
|
|||
(define SPAN-download-target-dir SPAN-dir)
|
||||
(define SPAN-mirror-url "localhost")
|
||||
;; question 1
|
||||
(cond
|
||||
((and (file-exists? SPAN-build-and-cache-dir)
|
||||
(file-exists? (string-append SPAN-dir "/mirror")))
|
||||
(let ((SPAN-mirror-url (make-string-input-port
|
||||
(open-input-file (string-append SPAN-build-and-cache-dir "/mirror")))))
|
||||
;;((lambda ()
|
||||
(cond
|
||||
((and (file-exists? SPAN-build-and-cache-dir)
|
||||
(file-exists? (string-append SPAN-dir "/mirror")))
|
||||
(let ((SPAN-mirror-url (make-string-input-port
|
||||
(open-input-file (string-append SPAN-build-and-cache-dir "/mirror")))))
|
||||
(SPAN-shell-spawn SPAN-mirror-url)))
|
||||
(else
|
||||
;;prototype (define (SPAN-question~ droptext question answer defaultchoice)
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-1)
|
||||
;;;;;;;;prototype (define (SPAN-question~ droptext question answer defaultchoice)
|
||||
((SPAN-question~ (question? 1)
|
||||
"SPAN build and cache directory"
|
||||
""
|
||||
SPAN-build-and-cache-dir
|
||||
|
@ -258,7 +278,7 @@ Enter 'h' for help.")
|
|||
#f)))) answer)
|
||||
|
||||
(define SPAN-download-target-dir (string-append SPAN-build-and-cache-dir "/" "sources"))
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-2)
|
||||
((SPAN-question~ (question? 2)
|
||||
"Download target directory"
|
||||
""
|
||||
SPAN-download-target-dir
|
||||
|
@ -269,7 +289,7 @@ Enter 'h' for help.")
|
|||
#f)))) answer)
|
||||
|
||||
(define SPAN-build-dir (string-append SPAN-build-and-cache-dir "/" "build"))
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-3)
|
||||
((SPAN-question~ (question? 3)
|
||||
"Directory where the build process takes place?"
|
||||
""
|
||||
SPAN-download-target-dir
|
||||
|
@ -280,7 +300,7 @@ Enter 'h' for help.")
|
|||
#f)))) answer)
|
||||
|
||||
(define SPAN-config "no")
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-4)
|
||||
((SPAN-question~ (question? 4)
|
||||
"Always commit changes to config variables to disk?"
|
||||
""
|
||||
SPAN-config
|
||||
|
@ -289,7 +309,7 @@ Enter 'h' for help.")
|
|||
#f)) answer)
|
||||
|
||||
(define SPAN-build-Mb 100)
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-5)
|
||||
((SPAN-question~ (question? 5)
|
||||
"Cache size for build directory (in MB)?"
|
||||
""
|
||||
SPAN-build-Mb
|
||||
|
@ -298,7 +318,7 @@ Enter 'h' for help.")
|
|||
#f)) answer)
|
||||
|
||||
(define SPAN-expire 1)
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-6)
|
||||
((SPAN-question~ (question? 6)
|
||||
"Let the index expire after how many days?"
|
||||
""
|
||||
SPAN-expire
|
||||
|
@ -307,7 +327,7 @@ Enter 'h' for help.")
|
|||
#f)) answer)
|
||||
|
||||
(define SPAN-scan-cache "atstart")
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-7)
|
||||
((SPAN-question~ (question? 7)
|
||||
"Perform cache scanning (atstart or never)?"
|
||||
""
|
||||
SPAN-scan-cache
|
||||
|
@ -316,7 +336,7 @@ Enter 'h' for help.")
|
|||
#f)) answer)
|
||||
|
||||
(define SPAN-cache-metadata "yes")
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-8)
|
||||
((SPAN-question~ (question? 8)
|
||||
"Cache metadata (yes/no)?"
|
||||
""
|
||||
SPAN-cache-metadata
|
||||
|
@ -325,7 +345,7 @@ Enter 'h' for help.")
|
|||
#f)) answer)
|
||||
|
||||
(define SPAN-policy-building "ask")
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-9)
|
||||
((SPAN-question~ (question? 9)
|
||||
"Policy on building prerequisites (follow, ask or ignore)? [ask]"
|
||||
""
|
||||
SPAN-policy-building
|
||||
|
@ -341,7 +361,7 @@ Enter 'h' for help.")
|
|||
;; ... until 20
|
||||
|
||||
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-20)
|
||||
((SPAN-question~ (question? 20)
|
||||
"Please enter the URL of your CPAN mirror "
|
||||
""
|
||||
SPAN-mirror-url
|
||||
|
@ -352,7 +372,7 @@ Enter 'h' for help.")
|
|||
#f)) answer)
|
||||
|
||||
(define SPAN-mirror-url-2 "")
|
||||
((SPAN-question~ (table-ref questions SPAN-shell-droptext-21)
|
||||
((SPAN-question~ (question? 21)
|
||||
"Enter another URL or RETURN to quit: [] "
|
||||
""
|
||||
SPAN-mirror-url-2
|
||||
|
@ -360,7 +380,7 @@ Enter 'h' for help.")
|
|||
(set! SPAN-mirror-url-2 answer)
|
||||
#f)) answer)
|
||||
|
||||
(display (table-ref questions SPAN-shell-droptext-22))
|
||||
(display (question? 22))
|
||||
(SPAN-shell-spawn SPAN-mirror-url))
|
||||
)))
|
||||
|
||||
|
|
Loading…
Reference in New Issue