Update build script

This commit is contained in:
Kashish Sharma 2018-12-20 10:49:42 +05:30
parent 6cc16668ef
commit e27a5b7230
1 changed files with 45 additions and 25 deletions

View File

@ -14,20 +14,23 @@
(define *project-name*
(regexp-substitute #f (string-match ".*/" (getcwd)) 'post))
;; Looks through the args list for the first occurrence of each valid
;; option from *options*
(define get-valid-args
(lambda (cli-args)
;; (format (current-error-port) "~s~s~%" "cli-args - " cli-args)
;; (format (current-error-port) "cli-args - ~s~%" cli-args)
(map (lambda (opt)
(find (lambda (cli-word)
(string-match
(string-append opt "*")
(string-append "^" opt)
cli-word))
cli-args))
*options*)))
;; changes args into a key-value alist
(define valid-args->alist
(lambda (valid-args)
;; (format (current-error-port) "~s~s~%" "valid-args - " valid-args)
;; (format (current-error-port) "valid-args - ~s~%" valid-args)
(map (lambda (arg)
(and arg
(string-contains arg "=")
@ -38,28 +41,45 @@
(if (< (length (command-line)) 2)
(format #t "~a~%" "Usage: build.scm TARGET [ARG=VALUE]*")
(let* ((cli-args (command-line))
(target (cadr cli-args))
(let* ((cli-args (command-line))
(target (cadr cli-args))
(valid-args (get-valid-args cli-args))
(alist (valid-args->alist valid-args))
(size (match (assoc-ref alist "size")
("a4" "-a4")
(_ "")))
(ly-command (string-append
"lilypond "
(match (assoc-ref alist "pac")
("off" "-dno-point-and-click ")
(_ ""))
"-o output/"
*project-name* (match target
("main" "")
(_ (string-append "-" target)))
size
" "
target size ".ly")))
;; (format (current-error-port) "~s~s~%" "alist - " alist)
(args-alist (valid-args->alist valid-args))
(size (match (assoc-ref args-alist "size")
("a4" "-a4")
(_ "")))
(pac (match (assoc-ref args-alist "pac")
("off" "-dno-point-and-click ")
(_ "")))
(ly-command (string-append "lilypond "
pac
"-o \"output/"
*project-name*
(match target
("main" "")
(_ (string-append "-" target)))
(match pac
("" "-pacON")
(_ ""))
(match size
("" "")
(_ "-"))
size
"\" "
target size ".ly")))
;; (format (current-error-port)
;; (string-append
;; "cli-args - ~s~%"
;; "target - ~s~%"
;; "valid-args - ~s~%"
;; "args-alist - ~s~%"
;; "size - ~s~%"
;; "pac - ~s~%")
;; cli-args
;; target
;; valid-args
;; args-alist
;; size
;; pac)
(format #t "~2%~a~2%" ly-command)
(system ly-command)))