When doing an offline template download, it's more the directory than a file that you're copying and moving.
1.9 KiB
1.9 KiB
Generate Template
- Preclude
- List of templates
- Download template for given template name and directory
- Copy and move template for a template name and destination directory
- Find if online or not
- Generate-template
Preclude
Generate templates from my set on Github or on computer currently.
List of templates
Make a list of possible templates for my system to use
(setq oreodave/templates/template-list (list "CTemplate" "CPPTemplate" "PythonTemplate" "NodeTemplate" "ArduinoTemplate"))
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.
(after! magit-clone
(defun oreodave/templates/download-template (template-name dest)
(magit-clone-regular (concat "https://github.com/oreodave/" template-name) dest nil)))
Copy and move template for a template name and destination directory
(defun oreodave/templates/copy-template (template-name dest)
(copy-directory (expand-file-name (concat "~/Projects/Templates/" template-name)) dest))
Find if online or not
Function which checks that the network connections are = 1. If only one network connection, must be offline
(defun oreodave/templates/offline ()
(eq (list-length (network-interface-list)) 1))
Generate-template
After getting a downloader function, write a new function that asks for the template and destination of clone for cloning to begin.
(after! (ivy magit-clone)
(defun oreodave/templates/generate-template ()
(interactive)
(ivy-read "Enter template: "
oreodave/templates/template-list
:action
(lambda (template-name)
(let ((dir (read-directory-name "Enter directory to download to: "))
(offline (oreodave/templates/offline)))
(if offline
(oreodave/templates/copy-template template-name dir))
(oreodave/templates/download-template template-name dir))))))