Сегодня речь пойдёт о том, как создать свой собственный quicklisp репозиторий. За реализацию этого проекта https://github.com/orivej/quickdist мегаспасибо orivej.
План такой: разместить свой проект с зависимостями так, чтобы пользователь в две строки мог загрузить его себе. Для этого нам необходим всего лишь хостинг для статических файлов. Github это дело умеет.
Скачайте проект quickdist в папку с локальными проектами. В официальном ql репозитории quickdist нет:
cd ~/quicklisp/local-projects
git clone https://github.com/orivej/quickdist.git
Расположите свои проекты в одной директории, например, ~/projects.
Теперь создайте репозиторий, например в папку ~/projects/cl-systems. На этом шаге нужно знать по какой ссылке будет доступен репозитарий. Если вы расположитесь на гитхабе, ссылка будет выглядеть так: http://%username%.github.com/%projectname%.
Вызов функции выглядит так (не забудьте заменить %reponame%, %nickname%, %projectname% на свои данные):
sbcl
(quickdist:quickdist :name "%reponame%" :base-url "http://%nickname%.github.com/%projectname%" :projects-dir "~/projects" :dists-dir "~/projects/cl-systems")
Перейдите в папку с репозиторием и поколдуйте гитом, примерно так:
touch index.html # index.html нужен чтобы гитхаб раздавал http доступ к отдельным файлам проекта
git init
git add .
git commit -a -m "initial commit"
git checkout -b gh-pages # гитхаб раздаёт http доступ только для файлов из ветки gh-pages
git push -u origin master
git push -u origin gh-pages
Теперь вы можете добавить ваш репозитарий таким образом:
(unless (ql-dist:find-dist "%reponame%")
(ql-dist:install-dist "http://%username%.github.com/%projectname%/%reponame%.txt" :prompt nil))
Удаление ссылки на репозиторий выполняется функцией ql:uninstall-dist.
(ql:uninstall-dist "%reponame%")
Лисповая библиотека будет загружаться из наиболее последнего установленного дистрибутива.
Изменить данное поведение можно с помощью (ql-dist:preference (ql-dist:find-dist "%reponame%"))).