1 Commits

Author SHA1 Message Date
23927d6948 Update .doom.d/init.el 2022-03-22 14:49:35 +00:00
7 changed files with 26 additions and 179 deletions

View File

@@ -3,6 +3,7 @@
;; Place your private configuration here! Remember, you do not need to run 'doom ;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file! ;; sync' after modifying this file!
;; Some functionality uses this to identify you, e.g. GPG configuration, email ;; Some functionality uses this to identify you, e.g. GPG configuration, email
;; clients, file templates and snippets. ;; clients, file templates and snippets.
(setq user-full-name "Max Regan" (setq user-full-name "Max Regan"
@@ -51,30 +52,3 @@
;; ;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how ;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented. ;; they are implemented.
(after! lsp-ui
;; sideline is super noisy
(setq lsp-ui-sideline-enable nil))
(after! org-journal
(setq org-journal-dir "~/org/journal/"))
(after! counsel
(ivy-rich-mode 1)
(all-the-icons-ivy-rich-mode 1))
(use-package! mgr-gitlab
:load-path "lisp/mgr-gitlab"
:ensure t
:config
(setq gitlab-host "gitlab.maxregan.me"
gitlab-token-id (if (file-exists-p mgr-gitlab-token-file)
(with-temp-buffer
(insert-file-contents mgr-gitlab-token-file)
(string-trim (buffer-string)))
nil)
dashboard-projects-backend 'projectile
dashboard-items '((mgr-gitlab-gitlab-projects . 10)
(recents . 5)
(agenda . 5)
(projects . 5))))

View File

@@ -30,7 +30,7 @@
;;deft ; notational velocity for Emacs ;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs doom-dashboard ; a nifty splash screen for Emacs
;; doom-quit ; DOOM quit-message prompts when you quit Emacs ;;doom-quit ; DOOM quit-message prompts when you quit Emacs
(emoji +unicode) ; 🙂 (emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra ;;hydra
@@ -53,7 +53,7 @@
:editor :editor
;;(evil +everywhere); come to the dark side, we have cookies ;;(evil +everywhere); come to the dark side, we have cookies
;; file-templates ; auto-snippets for empty files file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding fold ; (nigh) universal code folding
;;(format +onsave) ; automated prettiness ;;(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys ;;god ; run Emacs commands without modifier keys

View File

@@ -1,95 +0,0 @@
;;; mgr-gitlab.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2022 Max Regan
;;
;; Author: Max Regan <https://github.com/reganmax>
;; Maintainer: Max Regan <reganmax@amazon.com>
;; Created: March 17, 2022
;; Modified: March 17, 2022
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex tools unix vc wp
;; Homepage: https://github.com/reganmax/mgr-gitlab
;; Package-Requires: ((emacs "27.1"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description: My personal configuration for Gitlab
;;
;;; Code:
(require 'gitlab)
(require 'dashboard)
(require 'projectile)
(require 'seq)
(defvar mgr-gitlab-project-path "~/repos/" "The location into which gitlab projects will be cloned.")
(defvar mgr-gitlab-token-file "~/.gitlab_token" "The location into which gitlab projects will be cloned.")
(defun mgr-gitlab-list-remote-project-names ()
"Return a list of all of the project names on the remote server."
(seq-map (lambda (el) (alist-get 'name el)) (gitlab-list-all-projects)))
(defun mgr-gitlab-list-local-project-names ()
"Return a list of all of the project names in the mgr-gitlab-project-path."
(seq-remove #'file-directory-p (directory-files mgr-gitlab-project-path)))
(defun mgr-gitlab--get-project-by-name (name)
"Return the alist for the project named NAME."
(seq-find (lambda (el) (string-equal (alist-get 'name el) name)) (gitlab-list-projects)))
(defun mgr-gitlab--get-id-for-name (name)
"Return an ID for a given project NAME."
(alist-get 'id (mgr-gitlab--get-project-by-name name)))
(defun mgr-gitlab-clone (name)
"Clone the project NAME."
;; TODO: Automatically set remote.pushDefault so it does not prompt
;; TODO: Clone with API token, if there is one
(interactive
(list (completing-read "Project: " (mgr-gitlab-list-remote-project-names))))
(let* ((url (mgr-gitlab--get-url-by-name name))
(dest mgr-gitlab-project-path))
(magit-clone-regular url dest nil)))
(defun mgr-gitlab-clone-all ()
"Clone all projects in Gitlab, iteratively."
(interactive)
(seq-do (lambda (name)
(if (not (seq-contains-p (mgr-gitlab-list-local-project-names) name))
(progn
(message (format "Cloning %s..." name))
(mgr-gitlab-clone name))
(message (format "Skipping %s." name))))
(mgr-gitlab-list-remote-project-names)))
(defun mgr-gitlab--get-url-by-name (name)
"Return a fixed-up repository url for the given project NAME.
This also fixes up the capitalization in the project name that
gitlab so kindly removes."
(let* ((repo (mgr-gitlab--get-project-by-name name))
(orig-url (alist-get 'http_url_to_repo repo)))
(concat (mapconcat 'identity (butlast (split-string orig-url "/")) "/")
"/"
name
".git")))
(defun mgr-gitlab-dashboard-insert-gitlab-projects (list-size)
"A custom dashboard.el widget to display LIST-SIZE gitlab projects."
(dashboard-insert-section
"Gitlab Projects:"
(cl-map 'list (lambda (el) (alist-get 'name el)) (gitlab-list-all-projects))
list-size
'projects
"P"
`(lambda (&rest _)
(let ((dir (concat mgr-gitlab-project-path ,el)))
(if (not (file-directory-p dir))
(mgr-gitlab-clone ,el))
(magit-status (concat mgr-gitlab-project-path ,el))))
(format "%s" el)))
(add-to-list 'dashboard-item-generators '(mgr-gitlab-gitlab-projects . mgr-gitlab-dashboard-insert-gitlab-projects))
(provide 'mgr-gitlab)

View File

@@ -55,8 +55,6 @@
(package! git-auto-commit-mode) (package! git-auto-commit-mode)
;; required for mgr-gitlab
(package! gitlab)
;; Testing ;; Testing
(package! dashboard) (package! dashboard)

View File

@@ -4,23 +4,6 @@
# See https://docs.gitlab.com/ee/ci/variables/#priority-of-environment-variables # See https://docs.gitlab.com/ee/ci/variables/#priority-of-environment-variables
stages: stages:
- test - test
variables:
GIT_SUBMODULE_STRATEGY: recursive
DOOMDIR: ./.doom.d
EMACSDIR: ./.emacs.d
DOOMLOCALDIR: ./.emacs.d/local
test-emacs:
stage: test
image: ubuntu:22.04
before_script:
- apt-get update
- apt-get install -y emacs-nox git
- yes | ./.emacs.d/bin/doom install || true
script:
- ./.mgr_config/tests/test-emacs.sh
sast: sast:
stage: test stage: test
include: include:

View File

@@ -73,18 +73,8 @@ prompt_function() {
PS1="\$(prompt_function)" PS1="\$(prompt_function)"
# Add doom emacs to path
export PATH=$PATH:$HOME/.emacs.d/bin/ export PATH=$PATH:$HOME/.emacs.d/bin/
export EDITOR="emacs" export EDITOR="emacs"
export VISUAL="emacs" export VISUAL="emacs"
# Special sauce for better vterm integration in emacs
if [[ "$INSIDE_EMACS" = 'vterm' ]] \
&& [[ -n ${EMACS_VTERM_PATH} ]] \
&& [[ -f ${EMACS_VTERM_PATH}/etc/emacs-vterm-bash.sh ]]; then
source ${EMACS_VTERM_PATH}/etc/emacs-vterm-bash.sh
alias find-file="vterm_cmd find-file"
alias magit="vterm_cmd magit"
fi

View File

@@ -1,3 +0,0 @@
#!/bin/bash
emacs --batch --debug-init --load ./.emacs.d/init.el