master main.scm
  1;; parse cadr, e.g. yucbic
  2;;
  3;; y yes
  4;; u update
  5;; c clean
  6;; b build
  7;; i install
  8;; fucky syntax, but lets be different
  9
 10;; resource directory creation
 11(begin
 12  (mkdir-p DULL_DB)
 13  (mkdir-p DULL_DIR)
 14  )
 15
 16(when (or (= (length (command-line)) 1)
 17	  (and (not (> (length (command-line)) 2))
 18	       (any (lambda (c) (string-contains (cadr (command-line)) c))
 19		    '("b" "d" "i" "c" "f" "m")))
 20	  )
 21  (usage)
 22  (exit 0)
 23  )
 24
 25(unless
 26    (zero? (getuid))
 27  (die (format #f "you need to run ~a as root." DULL) 1))
 28
 29(define c
 30  (if (> (length (command-line)) 1)
 31      (cadr (command-line))
 32      "deadbeef"
 33      ))
 34
 35(define pkg
 36  (if (> (length (command-line)) 2)
 37      (caddr (command-line))
 38      "deadpkg"
 39      ))
 40
 41(when (string=? c "deadbeef")
 42  (begin
 43    (usage)
 44    (exit 1))
 45  )
 46
 47(desc)
 48
 49(let pargs
 50    (
 51     (n 0)
 52     )
 53
 54  (unless
 55      (= n (string-length c))
 56
 57    (case (string-ref c n)
 58      ((#\h)
 59       (usage)
 60       (exit 0)
 61       )
 62      ((#\u)
 63       (let up (
 64		(s (string-split DULL_PATH #\:))
 65		(n 0)
 66		)
 67	 (unless (= n (length s))
 68	   (when (file-exists? (format #f "~a/.git/" (list-ref s n)))
 69	       (begin
 70		 (chdir (list-ref s n))
 71		 (system* "git" "pull")
 72		 )
 73	       )
 74	   (up s (+ n 1))
 75	   )
 76	 )
 77       )
 78      ((#\b)
 79       (build-pkg pkg)
 80       )
 81      ((#\i)
 82       (seteuid 0)
 83       (inst-pkg pkg)(desc)
 84       )
 85      ((#\c)
 86       ;; shell out for this until i find a better method
 87       (system* "rm" "-rf"
 88		(format #f "~a/pkg-~a-~a" DULL_DIR pkg (ver-pkg pkg))
 89		(format #f "~a/src-~a-~a" DULL_DIR pkg (ver-pkg pkg))
 90		)
 91       )
 92      ((#\d)
 93       (seteuid 0)
 94       (del-pkg pkg)(desc)
 95       )
 96      ((#\f)
 97       (format #t "~a~%" (find-pkg pkg))
 98       )
 99      ((#\m)
100       (pm-pkg pkg)
101       )
102      )
103    
104    (pargs (+ n 1))
105    )
106  
107  )