Basic project setup

This commit is contained in:
Joseph Ferano 2025-04-03 23:02:13 +08:00
parent 3dc33b875a
commit b8cc8eaec6
3 changed files with 40 additions and 17 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/gitano.fasl
/main.fasl

17
gitano.asd Normal file
View File

@ -0,0 +1,17 @@
(asdf:defsystem "gitano"
:version "0.0.1"
:author "Joseph Ferano"
:license "MIT"
:depends-on (
:hunchentoot
:easy-routes
:djula
:cl-git
)
:components ((:module "." ;; a src/ subdirectory
:components
(
(:file "main") ;; = src/myproject.lisp
)))
:description "A minimalist git forge intended for self-hosting")

View File

@ -1,3 +1,7 @@
(defpackage gitano
(:use :cl))
(in-package :gitano)
(ql:quickload '("hunchentoot" "caveman2" "spinneret" (ql:quickload '("hunchentoot" "caveman2" "spinneret"
"djula" "easy-routes" "cl-git")) "djula" "easy-routes" "cl-git"))
@ -41,27 +45,27 @@
(git:open-repository "/home/joe/Development/cubetimer/") ;; (git:open-repository "/home/joe/Development/cubetimer/")
(uiop:directory-exists-p (merge-pathnames "/home/joe/Development/tinyswords/" ".git")) ;; (uiop:directory-exists-p (merge-pathnames "/home/joe/Development/tinyswords/" ".git"))
(let* ((proj-path (merge-pathnames #p"Development/tinyswords/" (user-homedir-pathname))) ;; (let* ((proj-path (merge-pathnames #p"Development/tinyswords/" (user-homedir-pathname)))
(repo (git:open-repository proj-path))) ;; (repo (git:open-repository proj-path)))
(git:resolve (git:get-object 'git:reference "HEAD" repo))) ;; (git:resolve (git:get-object 'git:reference "HEAD" repo)))
(loop for item in (git:repository-status *repo*) ;; (loop for item in (git:repository-status *repo*)
do (when (not (equalp (cadr item) :ignored)) ;; do (when (not (equalp (cadr item) :ignored))
(print item))) ;; (print item)))
(loop for item in (git:repository-status *repo*) ;; (loop for item in (git:repository-status *repo*)
do (when (not (equalp (cadr item) :ignored)) ;; do (when (not (equalp (cadr item) :ignored))
(print item))) ;; (print item)))
(git:revision-walk (git:get-object 'git:reference "refs/heads/master" ;; (git:revision-walk (git:get-object 'git:reference "refs/heads/master"
(git:open-repository "/home/joe/Development/tinyswords/"))) ;; (git:open-repository "/home/joe/Development/tinyswords/")))
(loop for entry in (git:entries (git:reflog (git:get-object 'git:reference "HEAD" *repo*))) ;; (loop for entry in (git:entries (git:reflog (git:get-object 'git:reference "HEAD" *repo*)))
do (print (getf (git:committer entry) :email))) ;; do (print (getf (git:committer entry) :email)))
(loop for tag in (git:with-repository (repo "/home/joe/Repositories/emacs/") ;; (loop for tag in (git:with-repository (repo "/home/joe/Repositories/emacs/")
(git:list-objects 'git:tag repo))) ;; (git:list-objects 'git:tag repo)))