init snow 2
This commit is contained in:
parent
e5eccd8ef7
commit
82cb56f537
|
@ -26,3 +26,5 @@
|
||||||
;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
;;; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
;;; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
(load "snow-repository.scm")
|
||||||
|
(display (snow-repository "./test.scm" '()))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
;;; Snow-repository.scm - Snow implementation
|
;;; snow-repository.scm - Snow implementation
|
||||||
;;;
|
;;;
|
||||||
;;; Copyright (c) 2012 Johan Ceuppens
|
;;; Copyright (c) 2012 Johan Ceuppens
|
||||||
;;;
|
;;;
|
||||||
|
@ -26,16 +26,24 @@
|
||||||
;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
;;; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||||
;;; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
;;; THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
(define (parse-for s index)
|
(define (parse-for s needle index)
|
||||||
(let ((word "("))
|
(let ((word "("))
|
||||||
(do ((i index (+ i 1)))
|
(do ((i index (+ i 1)))
|
||||||
((cond ((string=? s word)
|
((cond ((string=? needle word)
|
||||||
;;(set! index i))
|
;;(set! index i))
|
||||||
i)
|
i)
|
||||||
|
((eq? (string-ref s i) #\space)
|
||||||
|
(set! word ""))
|
||||||
((eq? (string-ref s i) #\newline)
|
((eq? (string-ref s i) #\newline)
|
||||||
#t));;(string-set! s i ""
|
#t));;(string-set! s i ""
|
||||||
(set! word (string-append word (string (string-ref s i))))))))
|
(set! word (string-append word (string (string-ref s i))))))))
|
||||||
|
|
||||||
|
(define (read-in-file-contents filename)
|
||||||
|
(let ((contents ""))
|
||||||
|
(do ((s (read-char)(read-char)))
|
||||||
|
((eof-object? s)
|
||||||
|
contents)
|
||||||
|
(set! contents (append contents (string s))))))
|
||||||
|
|
||||||
(define (parse-for-url s index)
|
(define (parse-for-url s index)
|
||||||
(let ((word "")
|
(let ((word "")
|
||||||
|
@ -48,14 +56,21 @@
|
||||||
(set! word (string-append word (string (string-ref s i)))))
|
(set! word (string-append word (string (string-ref s i)))))
|
||||||
(error "parse-for-url : malformed url string"))))
|
(error "parse-for-url : malformed url string"))))
|
||||||
|
|
||||||
(define (snow-repository db)
|
(define (snow-repository filename db)
|
||||||
(let ((index 0)
|
(let ((index 0)
|
||||||
(db db))
|
(index2 0)
|
||||||
(cond ((let ((index2 (parse-for "repository" index)))
|
(index3 0)
|
||||||
(cond ((let ((index3 (parse-for "package" index2))))
|
(index4 0)
|
||||||
(cond ((let ((index4 (parse-for "url" index3))))
|
(urlstr "")
|
||||||
((cond (let ((url parse-for-url index4))))
|
(db db)
|
||||||
(set! db (append db (cons "url" url)
|
(contents (read-in-file-contents filename)))
|
||||||
))))))))))))
|
(set! index2 (parse-for contents "repository" index))
|
||||||
|
(set! index3 (parse-for contents "package" index))
|
||||||
|
(set! index4 (parse-for contents "url" index))
|
||||||
|
(set! urlstr (parse-for-url contents index4))
|
||||||
|
|
||||||
|
(set! db (append db (cons "url" urlstr)))
|
||||||
|
db))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
(repository
|
||||||
|
(package
|
||||||
|
(url "http://www.wonderland.org/repo/wonderland.tgz")
|
||||||
|
(library
|
||||||
|
(name (wonderland cheshire cat))
|
||||||
|
(path "cheshire/cat.pkg"))
|
||||||
|
(library
|
||||||
|
(name (wonderland mad hatter))
|
||||||
|
(path "mad/hatter.pkg"))))
|
Loading…
Reference in New Issue