diff options
author | dx <aryadevchavali1@gmail.com> | 2020-07-15 15:56:08 +0100 |
---|---|---|
committer | dx <aryadevchavali1@gmail.com> | 2020-07-15 15:57:09 +0100 |
commit | 6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac (patch) | |
tree | b13c110ee1e64abfc19126085b08bace6a42d14c /Doom/.config/doom/modules/private/gentemplate | |
parent | 33edf2cf6d1a2d653ca268ad272eb8f4f30380ef (diff) | |
download | dotfiles-6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac.tar.gz dotfiles-6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac.tar.bz2 dotfiles-6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac.zip |
~~/.doom.d -> ~/.config/doom
Diffstat (limited to 'Doom/.config/doom/modules/private/gentemplate')
-rw-r--r-- | Doom/.config/doom/modules/private/gentemplate/README.org | 19 | ||||
-rw-r--r-- | Doom/.config/doom/modules/private/gentemplate/config.el | 36 |
2 files changed, 55 insertions, 0 deletions
diff --git a/Doom/.config/doom/modules/private/gentemplate/README.org b/Doom/.config/doom/modules/private/gentemplate/README.org new file mode 100644 index 0000000..c09f20e --- /dev/null +++ b/Doom/.config/doom/modules/private/gentemplate/README.org @@ -0,0 +1,19 @@ +#+TITLE: private/gentemplate +#+DATE: March 17, 2020 + +* Description +This module allows users to clone templates from my Github to specific machines. +These templates allow for quick and easy setup for languages or frameworks where +this sort of thing isn't very nice to do (for example C++). + +This module is used through the main function =+gentemplate/generate-template=. +It will ask what template you want to use then where to put it, finally doing +the necessary work to get you that template. You may mutate the variables +=+gentemplate/template-list= and =+gentemplate/profile-url= to customise your +templates. +* Prerequisites +- git +* Requirements +- ivy +- magit +- cl diff --git a/Doom/.config/doom/modules/private/gentemplate/config.el b/Doom/.config/doom/modules/private/gentemplate/config.el new file mode 100644 index 0000000..d843cc2 --- /dev/null +++ b/Doom/.config/doom/modules/private/gentemplate/config.el @@ -0,0 +1,36 @@ +;;; private/gentemplate/config.el -*- lexical-binding: t; -*- + +(require 'cl-lib) + +(defvar +gentemplate/profile-url + "https://github.com/oreodave/" + "Profile to download templates from on github.") + +(defvar +gentemplate/template-list + (list "CTemplate" "CPPTemplate" "PythonTemplate" "NodeTemplate" "ArduinoTemplate" "JavaTemplate") + "List of templates to use, relative to the profile-url") + +(defun +gentemplate/offline () + (eq (cl-list-length (network-interface-list)) 1)) + +(defun +gentemplate/copy-template (template-name dest) + "Copy a template project via it's `template-name' to a folder called `dest'" + (copy-directory (expand-file-name (concat "~/Code/Templates/" template-name)) dest)) + +(after! (ivy magit-clone) + (defun +gentemplate/download-template (template-name dest) + "Download a given template via its `template-name' to the `dest' folder" + (magit-clone-regular (concat +gentemplate/profile-url template-name) dest nil)) + + (defun +gentemplate/generate-template () + (interactive) + (ivy-read + "Enter template: " + +gentemplate/template-list + :action + (lambda (template-name) + (let ((dir (read-directory-name "Enter directory to download to: ")) + (offline (+gentemplate/offline))) + (if offline + (+gentemplate/copy-template template-name dir) + (+gentemplate/download-template template-name dir))))))) |