aboutsummaryrefslogtreecommitdiff
path: root/Doom/.config/doom/modules/private/gentemplate/config.el
diff options
context:
space:
mode:
authordx <aryadevchavali1@gmail.com>2020-07-15 15:56:08 +0100
committerdx <aryadevchavali1@gmail.com>2020-07-15 15:57:09 +0100
commit6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac (patch)
treeb13c110ee1e64abfc19126085b08bace6a42d14c /Doom/.config/doom/modules/private/gentemplate/config.el
parent33edf2cf6d1a2d653ca268ad272eb8f4f30380ef (diff)
downloaddotfiles-6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac.tar.gz
dotfiles-6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac.tar.bz2
dotfiles-6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac.zip
~~/.doom.d -> ~/.config/doom
Diffstat (limited to 'Doom/.config/doom/modules/private/gentemplate/config.el')
-rw-r--r--Doom/.config/doom/modules/private/gentemplate/config.el36
1 files changed, 36 insertions, 0 deletions
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)))))))