~gentemplate

Moved around a few sections for a more flowing summary.

Changed generate-template to only download a template if it hasn't
already been copied
This commit is contained in:
AChavali
2020-02-09 15:12:28 +00:00
parent b1604d9532
commit 2728101a75
2 changed files with 35 additions and 30 deletions

View File

@@ -8,41 +8,46 @@ Make a list of possible templates for my system to use
#+BEGIN_SRC elisp #+BEGIN_SRC elisp
(setq oreodave/templates/template-list (list "CTemplate" "CPPTemplate" "PythonTemplate" "NodeTemplate" "ArduinoTemplate")) (setq oreodave/templates/template-list (list "CTemplate" "CPPTemplate" "PythonTemplate" "NodeTemplate" "ArduinoTemplate"))
#+END_SRC #+END_SRC
* Download template for given template name and directory
For a given template name and destination, map the template name to
a URL and clone to the destination using magit-clone-regular.
#+BEGIN_SRC elisp
(after! magit-clone
(defun oreodave/templates/download-template (template-name dest)
(magit-clone-regular (concat "https://github.com/oreodave/" template-name) dest nil)))
#+END_SRC
* Copy and move template for a template name and destination directory
#+BEGIN_SRC elisp
(defun oreodave/templates/copy-template (template-name dest)
(copy-directory (expand-file-name (concat "~/Projects/Templates/" template-name)) dest))
#+END_SRC
* Find if online or not * Find if online or not
Function which checks that the network connections are = 1. If only one network Function which checks that the network connections are = 1. If only one network
connection, must be offline connection is present, the system must be offline
#+BEGIN_SRC elisp #+BEGIN_SRC elisp
(defun oreodave/templates/offline () (defun oreodave/templates/offline ()
(eq (list-length (network-interface-list)) 1)) (eq (list-length (network-interface-list)) 1))
#+END_SRC #+END_SRC
* Download template
For a given template name and destination, map the template name to a URL and
clone to the destination using magit-clone-regular.
#+BEGIN_SRC elisp
(after! magit-clone
(defun oreodave/templates/download-template (template-name dest)
"Download a given template via its `template-name' to the `dest' folder"
(magit-clone-regular (concat "https://github.com/oreodave/" template-name) dest nil)))
#+END_SRC
* Copy template
For a given template name, copy the template from the local template directory
to a destination.
#+BEGIN_SRC elisp
(defun oreodave/templates/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))
#+END_SRC
* Generate-template * Generate-template
After getting a downloader function, write a new function that asks for the After getting a download function, write a new function that asks for the
template and destination of clone for cloning to begin. template and destination of clone for cloning to begin.
#+BEGIN_SRC elisp #+BEGIN_SRC elisp
(after! (ivy magit-clone) (after! (ivy magit-clone)
(defun oreodave/templates/generate-template () (defun oreodave/templates/generate-template ()
(interactive) (interactive)
(ivy-read "Enter template: " (ivy-read
oreodave/templates/template-list "Enter template: "
:action oreodave/templates/template-list
(lambda (template-name) :action
(let ((dir (read-directory-name "Enter directory to download to: ")) (lambda (template-name)
(offline (oreodave/templates/offline))) (let ((dir (read-directory-name "Enter directory to download to: "))
(if offline (offline (oreodave/templates/offline)))
(oreodave/templates/copy-template template-name dir)) (if offline
(oreodave/templates/download-template template-name dir)))))) (oreodave/templates/copy-template template-name dir)
(oreodave/templates/download-template template-name dir)))))))
#+END_SRC #+END_SRC

10
zshenv
View File

@@ -39,11 +39,11 @@ gentemplate() {
gentemplateoff () { gentemplateoff () {
for var in ${@:2}; do for var in ${@:2}; do
case $1 in case $1 in
'c') cp -r ~/Projects/Templates/CTemplate $var;; 'c') cp -r ~/Code/Templates/CTemplate $var;;
'cpp') cp -r ~/Projects/Templates/CPPTemplate $var;; 'cpp') cp -r ~/Code/Templates/CPPTemplate $var;;
'python') cp -r ~/Projects/Templates/PythonTemplate $var;; 'python') cp -r ~/Code/Templates/PythonTemplate $var;;
'node') cp -r ~/Projects/Templates/NodeTemplate $var;; 'node') cp -r ~/Code/Templates/NodeTemplate $var;;
'ard') cp -r ~/Projects/Templates/ArduinoTemplate $var;; 'ard') cp -r ~/Code/Templates/ArduinoTemplate $var;;
*) return;; *) return;;
esac esac
rm -rf $var/.git; rm -rf $var/.git;