~gentemplate.org -> gentemplate module
Gentemplate is one of those things that just makes sense as a module. Thus, converted it. I may convert a few more org files into full blown modules.
This commit is contained in:
@@ -1,53 +0,0 @@
|
|||||||
#+TITLE: 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
|
|
||||||
#+BEGIN_SRC elisp
|
|
||||||
(setq oreodave/templates/template-list (list "CTemplate" "CPPTemplate" "PythonTemplate" "NodeTemplate" "ArduinoTemplate" "JavaTemplate"))
|
|
||||||
#+END_SRC
|
|
||||||
* Find if online or not
|
|
||||||
Function which checks that the network connections are = 1. If only one network
|
|
||||||
connection is present, the system must be offline
|
|
||||||
#+BEGIN_SRC elisp
|
|
||||||
(defun oreodave/templates/offline ()
|
|
||||||
(eq (list-length (network-interface-list)) 1))
|
|
||||||
#+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
|
|
||||||
After getting a download function, write a new function that asks for the
|
|
||||||
template and destination of clone for cloning to begin.
|
|
||||||
#+BEGIN_SRC elisp
|
|
||||||
(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)))))))
|
|
||||||
#+END_SRC
|
|
||||||
21
doom.d/modules/private/gentemplate/README.org
Normal file
21
doom.d/modules/private/gentemplate/README.org
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
#+TITLE: private/gentemplate
|
||||||
|
#+DATE: March 17, 2020
|
||||||
|
#+SINCE: {replace with next tagged release version}
|
||||||
|
#+STARTUP: inlineimages nofold
|
||||||
|
|
||||||
|
* 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
|
||||||
32
doom.d/modules/private/gentemplate/config.el
Normal file
32
doom.d/modules/private/gentemplate/config.el
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
;;; private/gentemplate/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
|
(require 'cl)
|
||||||
|
|
||||||
|
(setq +gentemplate/template-list (list "CTemplate" "CPPTemplate" "PythonTemplate" "NodeTemplate" "ArduinoTemplate" "JavaTemplate"))
|
||||||
|
(setq +gentemplate/profile-url "https://github.com/oreodave/")
|
||||||
|
|
||||||
|
(defun +gentemplate/offline ()
|
||||||
|
(eq (list-length (network-interface-list)) 1))
|
||||||
|
|
||||||
|
(after! 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/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/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)))))))
|
||||||
Reference in New Issue
Block a user