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 ppkg
 50    ((p (string-split pkg #\:))
 51     (l 0))
 52  
 53  (unless (= l (length p))
 54    (let pargs
 55	(
 56	 (n 0)
 57	 (pk (list-ref p l))
 58	 )
 59
 60      (unless
 61	  (= n (string-length c))
 62
 63	(case (string-ref c n)
 64	  ((#\h)
 65	   (usage)
 66	   (exit 0)
 67	   )
 68	  ((#\u)
 69	   (let up (
 70		    (s (string-split DULL_PATH #\:))
 71		    (n 0)
 72		    )
 73	     (unless (= n (length s))
 74	       (when (file-exists? (format #f "~a/.git/" (list-ref s n)))
 75		 (begin
 76		   (chdir (list-ref s n))
 77		   (system* "git" "pull")
 78		   )
 79		 )
 80	       (up s (+ n 1))
 81	       )
 82	     )
 83	   )
 84	  ((#\b)
 85	   (build-pkg pk)
 86	   )
 87	  ((#\i)
 88	   (seteuid 0)
 89	   (inst-pkg pk)(desc)
 90	   )
 91	  ((#\c)
 92	   ;; shell out for this until i find a better method
 93	   (system* "rm" "-rf"
 94		    (format #f "~a/pkg-~a-~a" DULL_DIR pkg (ver-pkg pk))
 95		    (format #f "~a/src-~a-~a" DULL_DIR pkg (ver-pkg pk))
 96		    )
 97	   )
 98	  ((#\d)
 99	   (seteuid 0)
100	   (del-pkg pk)(desc)
101	   )
102	  ((#\f)
103	   (format #t "~a~%" (find-pkg pk))
104	   )
105	  ((#\m)
106	   (pm-pkg pk)
107	   )
108	  )
109	
110	(pargs (+ n 1) pk)
111	)
112      
113      )(ppkg p (+ l 1))
114    ))