| 
					
				 | 
			
			
				@@ -5,15 +5,45 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Shortcut function over :test #'equal for working with TOML alists" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (cdr (assoc key alist :test #'equal))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun find-config () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((config-paths (list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (concatenate 'string (uiop:getenv "HOME") "/.config/pest/config.toml") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       "/etc/pest/config.toml" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (concatenate 'string (uiop:getenv "PWD") "./config")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (loop for path-str in config-paths 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  do (if (probe-file path-str) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 (return-from find-config path-str))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun config-parse (&optional path) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let ((config-path (if path path (concatenate 'string (uiop:getenv "HOME") "/.config/pest/config.toml")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (if (probe-file config-path) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((config-path (if path path (find-config)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (if config-path 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(with-open-file (fh config-path :direction :input) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			   (let ((file-content (with-output-to-string (out) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						 (loop for line = (read-line fh nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						       while line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						       do (format out "~a~%" line))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			     (clop:parse file-content)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     (clop:parse file-content))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(clop:parse " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+[git] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+display_head = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+display_branch = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+git_prefix = \"\" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+[git.colors] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fg = [0, 120, 50] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+bg = [0, 0, 0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+[prompt] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+display_user = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+user_suffix = \"\" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+display_hostname = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+hostname_suffix = \"\" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+display_pwd = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+pwd_suffix = \"\" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+prompt_char = \" λ \" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+[prompt.colors] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+fg = [255, 255, 255] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+bg = [0, 0, 0] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defvar *config* NIL) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -100,7 +130,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun reload-config () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (setf *config* (config-parse "~/Repos/cl-pest/config.toml")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (setf *config* (config-parse)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (setf *prompt-style* (make-style *config* "prompt")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (if (check-git-enabled *config*) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (setf *git-style* (make-style *config* "git")))) 
			 |