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