+clean up gentemplate to be completion agnostic

This commit is contained in:
dx
2020-07-18 00:54:58 +01:00
parent 254c8a33bb
commit 1cc05b4caf

View File

@@ -2,35 +2,34 @@
(require 'cl-lib) (require 'cl-lib)
(defvar +gentemplate/profile-url (defconst +gentemplate/repo-url
"https://github.com/oreodave/" "https://github.com/oreodave/"
"Profile to download templates from on github.") "Repository url to download templates")
(defvar +gentemplate/template-list (defconst +gentemplate/template-list
(list "CTemplate" "CPPTemplate" "PythonTemplate" "NodeTemplate" "ArduinoTemplate" "JavaTemplate") (list "CTemplate" "CPPTemplate" "PythonTemplate" "NodeTemplate" "ArduinoTemplate" "JavaTemplate")
"List of templates to use, relative to the profile-url") "List of templates to use, relative to the repo-url")
(defun +gentemplate/offline () (defun +gentemplate/offline ()
"Check if user is offline"
(eq (cl-list-length (network-interface-list)) 1)) (eq (cl-list-length (network-interface-list)) 1))
(defun +gentemplate/copy-template (template-name dest) (defun +gentemplate/copy-template (template-name dest)
"Copy a template project via it's `template-name' to a folder called `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)) (copy-directory (expand-file-name (concat "~/Code/Templates/" template-name)) dest))
(after! (ivy magit-clone) (after! magit
(defun +gentemplate/download-template (template-name dest) (defun +gentemplate/download-template (template-name dest)
"Download a given template via its `template-name' to the `dest' folder" "Download a given template via its `template-name' to the `dest' folder"
(magit-clone-regular (concat +gentemplate/profile-url template-name) dest nil)) (magit-clone-regular (concat +gentemplate/repo-url template-name) dest nil))
(defun +gentemplate/generate-template () (defun +gentemplate/generate-template ()
(interactive) (interactive)
(ivy-read (let ((template-name (completing-read
"Enter template: " "Enter template: "
+gentemplate/template-list +gentemplate/template-list))
:action (dir (read-directory-name "Enter directory to download to: "))
(lambda (template-name) (offline (+gentemplate/offline)))
(let ((dir (read-directory-name "Enter directory to download to: ")) (if offline
(offline (+gentemplate/offline))) (+gentemplate/copy-template template-name dir)
(if offline (+gentemplate/download-template template-name dir)))))
(+gentemplate/copy-template template-name dir)
(+gentemplate/download-template template-name dir)))))))