From 9ced0a3677eb55120e71a4c1bf652ea24aadf272 Mon Sep 17 00:00:00 2001 From: odave Date: Tue, 17 Mar 2020 17:03:10 +0000 Subject: ~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. --- doom.d/modules/gentemplate.org | 53 --------------------------- doom.d/modules/private/gentemplate/README.org | 21 +++++++++++ doom.d/modules/private/gentemplate/config.el | 32 ++++++++++++++++ 3 files changed, 53 insertions(+), 53 deletions(-) delete mode 100644 doom.d/modules/gentemplate.org create mode 100644 doom.d/modules/private/gentemplate/README.org create mode 100644 doom.d/modules/private/gentemplate/config.el diff --git a/doom.d/modules/gentemplate.org b/doom.d/modules/gentemplate.org deleted file mode 100644 index dfaacc9..0000000 --- a/doom.d/modules/gentemplate.org +++ /dev/null @@ -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 diff --git a/doom.d/modules/private/gentemplate/README.org b/doom.d/modules/private/gentemplate/README.org new file mode 100644 index 0000000..86e7463 --- /dev/null +++ b/doom.d/modules/private/gentemplate/README.org @@ -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 diff --git a/doom.d/modules/private/gentemplate/config.el b/doom.d/modules/private/gentemplate/config.el new file mode 100644 index 0000000..ae5b973 --- /dev/null +++ b/doom.d/modules/private/gentemplate/config.el @@ -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))))))) -- cgit v1.2.3-13-gbd6f