stop hardcoading .... bit

This commit is contained in:
SANO Masatoshi 2016-04-24 23:42:59 +09:00
parent 6d522a1636
commit 6210dce735
9 changed files with 24 additions and 16 deletions

View file

@ -29,11 +29,12 @@ exec ros -Q -m roswell -L sbcl-bin -- $0 "$@"
'(("install" . asdf-install)
("use" . asdf-use)
("list" . asdf-list)))
(defvar *asdf-base-uri* "https://github.com/fare/asdf/archive/")
(defun asdf-install (&optional version &rest r)
(declare (ignorable r))
(setf version (or version (first (asdf-get-version))))
(let ((url (format nil "https://github.com/fare/asdf/archive/~A.tar.gz" version))
(let ((url (format nil "~A~A.tar.gz" *asdf-base-uri* version))
(file (merge-pathnames (format nil "archives/asdf-~A.tar.gz" version) (homedir)))
(src (merge-pathnames "src/" (homedir))))
(unless (probe-file file)

View file

@ -1,9 +1,9 @@
(in-package :ros.install)
(defvar *ffcall-version* "1.10")
(defvar *ffcall-archive-uri* "http://www.haible.de/bruno/gnu/")
(defun ffcall-setup (argv)
(let* ((uri (format nil "http://www.haible.de/bruno/gnu/ffcall-~A.tar.gz" *ffcall-version*))
(let* ((uri (format nil "~Affcall-~A.tar.gz" *ffcall-archive-uri* *ffcall-version*))
(pos (position #\/ uri :from-end t))
(path (merge-pathnames (format nil "archives/~A" (subseq uri (1+ pos))) (homedir)))
(expand-dir (merge-pathnames (format nil "src/ffcall-~A/" *ffcall-version*) (homedir))))

View file

@ -8,7 +8,7 @@
;;(ironclad:byte-array-to-hex-string (ironclad:digest-file :sha1 path))
(defvar *msys2-arch* #+x86-64 "x86_64" #-x86-64 "i686") ;; TBD ARM windows?
(defvar *msys2-bits* #+x86-64 "64" #-x86-64 "32")
(defvar *msys2-base-uri* "http://kent.dl.sourceforge.net/project/")
(defun msys2-setup (argv)
(let ((path (merge-pathnames (format nil "archives/msys2-~A.tar.xz" *msys2-basever*) (homedir)))
(msys (merge-pathnames (format nil "impls/~A/~A/msys~A/" (uname-m) (uname) *msys2-bits*) (homedir))))
@ -20,7 +20,8 @@
(when (or (not (probe-file path))
(get-opt "download.force"))
(download
(format nil "http://kent.dl.sourceforge.net/project/msys2/Base/~A/msys2-base-~A-~A.tar.xz"
(format nil "~Amsys2/Base/~A/msys2-base-~A-~A.tar.xz"
*msys2-base-uri*
*msys2-arch* *msys2-arch* *msys2-basever*) path))
(format t " done.~%")
(expand path

View file

@ -1,9 +1,10 @@
(in-package :ros.install)
(defvar *sigsegv-version* "2.10")
(defvar *sigsegv-uri* "http://ftpmirror.gnu.org/libsigsegv/")
(defun sigsegv-setup (argv)
(let* ((uri (format nil "http://ftpmirror.gnu.org/libsigsegv/libsigsegv-~A.tar.gz" *sigsegv-version*))
(let* ((uri (format nil "~Alibsigsegv-~A.tar.gz" *sigsegv-uri* *sigsegv-version*))
(pos (position #\/ uri :from-end t))
(path (merge-pathnames (format nil "archives/~A" (subseq uri (1+ pos))) (homedir)))
(expand-dir (merge-pathnames (format nil "src/libsigsegv-~A/" *sigsegv-version*) (homedir))))

View file

@ -2,10 +2,11 @@
(in-package :ros.install)
(ql:quickload '(:plump :simple-date-time :split-sequence :cl-ppcre) :silent t)
(defvar *abcl-base-uri* "https://common-lisp.net/project/armedbear/releases/")
(defun abcl-bin-get-version ()
(let ((file (merge-pathnames "tmp/abcl-bin.html" (homedir))))
(format *error-output* "Checking version to install....~%")
(download "https://common-lisp.net/project/armedbear/releases/" file)
(download *abcl-base-uri* file)
(loop for a in (plump:get-elements-by-tag-name
(plump:parse file) "a")
for x = (string-right-trim "/" (plump:get-attribute a "href"))
@ -18,8 +19,6 @@
(setf (getf argv :version) (first (abcl-bin-get-version)))))
(cons t argv))
;;"https://common-lisp.net/project/armedbear/releases/1.3.3/abcl-bin-1.3.3.tar.gz"
(defun abcl-bin-impl ()
(merge-pathnames (format nil "impls/~A/~A/abcl-bin/" (uname-m) (uname)) (homedir)))
@ -27,7 +26,7 @@
(set-opt "as" (getf argv :version))
(when (position "--without-install" (getf argv :argv) :test 'equal)
(set-opt "without-install" t))
(set-opt "download.uri" (format nil "~@{~A~}" "https://common-lisp.net/project/armedbear/releases/"
(set-opt "download.uri" (format nil "~@{~A~}" *abcl-base-uri*
(getf argv :version) "/abcl-bin-" (getf argv :version)".tar.gz"))
(set-opt "download.archive" (let ((pos (position #\/ (get-opt "download.uri") :from-end t)))
(when pos

View file

@ -4,12 +4,13 @@
#+win32
(ql:quickload :zip :silent t)
(defvar *ccl-base-uri* "http://ccl.clozure.com/ftp/pub/release/")
(defun ccl-bin-get-version ()
(let ((file (merge-pathnames "tmp/ccl-bin.html" (homedir))))
(format *error-output* "Checking version to install...~%")
(unless (and (probe-file file)
(< (get-universal-time) (+ (* 60 60) (file-write-date file))))
(download "http://ccl.clozure.com/ftp/pub/release/" file))
(download *ccl-base-uri* file))
(loop for link in (plump:get-elements-by-tag-name (plump:parse file) "a")
for href = (plump:get-attribute link "href")
for len = (length href)
@ -38,7 +39,7 @@
(set-opt "as" (getf argv :version))
(when (position "--without-install" (getf argv :argv) :test 'equal)
(set-opt "without-install" t))
(set-opt "download.uri" (format nil "~@{~A~}" "http://ccl.clozure.com/ftp/pub/release/"
(set-opt "download.uri" (format nil "~@{~A~}" *ccl-base-uri*
(getf argv :version) "/ccl-" (getf argv :version) "-" uname ccl-uname-m (if (equal uname "windows")
".zip"".tar.gz")))
(set-opt "download.archive" (let ((pos (position #\/ (get-opt "download.uri") :from-end t)))

View file

@ -1,11 +1,14 @@
(in-package :ros.install)
(defvar *clisp-base-uri* "http://ftp.gnu.org/pub/gnu/clisp/release/")
(defvar *clisp-archive-uri* "http://sourceforge.net/projects/clisp/files/clisp/")
(defun clisp-get-version ()
(let ((file (merge-pathnames "tmp/clisp.html" (homedir))))
(format *error-output* "Checking version to install....~%")
(unless (and (probe-file file)
(< (get-universal-time) (+ (* 60 60) (file-write-date file))))
(download "http://ftp.gnu.org/pub/gnu/clisp/release/" file))
(download *clisp-base-uri* file))
(loop for link in (plump:get-elements-by-tag-name (plump:parse file) "a")
for href = (plump:get-attribute link "href") for len = (1- (length href))
when (and (eql (aref href len) #\/)
@ -27,7 +30,7 @@
(getf argv :version)
(nth (1+ pos) (getf argv :argv))))
(getf argv :version))))
(set-opt "download.uri" (format nil "~@{~A~}" "http://sourceforge.net/projects/clisp/files/clisp/"
(set-opt "download.uri" (format nil "~@{~A~}" *clisp-archive-uri*
(getf argv :version) "/clisp-" (getf argv :version) ".tar.bz2"))
(set-opt "download.archive" (let ((pos (position #\/ (get-opt "download.uri") :from-end t)))
(when pos

View file

@ -4,6 +4,7 @@
(defvar *ecl-options*
'())
(defvar *ecl-archive-uri* "https://github.com/roswell/mirror-ecl/archive/")
(defun ecl-get-version ()
(format *error-output* "Checking version to install....~%")
(github-version "roswell" "mirror-ecl"
@ -39,7 +40,7 @@
(set-opt "archive" "t"))
(when (position "--without-install" (getf argv :argv) :test 'equal)
(set-opt "without-install" t))
(set-opt "download.uri" (format nil "https://github.com/roswell/mirror-ecl/archive/~A.tar.gz" (ecl-version-filename (getf argv :version))))
(set-opt "download.uri" (format nil "~A.tar.gz" *ecl-archive-uri* (ecl-version-filename (getf argv :version))))
(set-opt "download.archive" (let ((pos (position #\/ (get-opt "download.uri") :from-end t)))
(when pos
(merge-pathnames (format nil "archives/~A" (subseq (get-opt "download.uri") (1+ pos))) (homedir)))))

View file

@ -1,4 +1,5 @@
(in-package :ros.install)
(defvar *quicklisp-base-uri* "http://beta.quicklisp.org/")
(defun quicklisp-help (argv)
(format *error-output* "no options for quicklisp~%")
@ -68,7 +69,7 @@
release)))))))
(defun quicklisp-argv-parse (argv)
(set-opt "download.uri" (format nil "~A~A" "http://beta.quicklisp.org/" "quicklisp.lisp"))
(set-opt "download.uri" (format nil "~A~A" *quicklisp-base-uri* "quicklisp.lisp"))
(set-opt "download.archive" (merge-pathnames (format nil "archives/~A" "quicklisp.lisp") (homedir)))
(cons t argv))