aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemse2013-05-20 02:57:04 +0200
committerGravatar Tom Willemse2013-05-20 02:57:04 +0200
commita163906b15e20ae3b471f33b2a04629a51d9ea71 (patch)
treed62206ff97cc6af7a749ba1b58ad8f179086d099
parentb02f3310321d0ef51b6b04e9518558000ccf98cf (diff)
downloadkaarvok-a163906b15e20ae3b471f33b2a04629a51d9ea71.tar.gz
kaarvok-a163906b15e20ae3b471f33b2a04629a51d9ea71.zip
Rename project to kaarvok
project-template was too general and used by other projects.
-rwxr-xr-xkaarvok26
-rw-r--r--kaarvok.el (renamed from project-template.el)109
-rwxr-xr-xpt27
3 files changed, 82 insertions, 80 deletions
diff --git a/kaarvok b/kaarvok
new file mode 100755
index 0000000..ccbfbb8
--- /dev/null
+++ b/kaarvok
@@ -0,0 +1,26 @@
+#!/bin/sh
+## kaarvok --- Generate directory structures from templates
+# Copyright (C) 2013 Tom Willemse <tom at ryuslash dot org>
+
+# This file is part of kaarvok.
+
+# kaarvok is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# kaarvok is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with kaarvok. If not, see <http://www.gnu.org/licenses/>.
+
+if [ "${#@}" -lt 2 ]; then
+ echo "Usage: $0 <template name> <destination>"
+ exit 1
+fi
+
+/usr/bin/emacs -Q -batch -l kaarvok.el -eval \
+ "(kaarvok-create-project-from-template \"$1\" \"$2\")"
diff --git a/project-template.el b/kaarvok.el
index 51c254b..40be88a 100644
--- a/project-template.el
+++ b/kaarvok.el
@@ -1,4 +1,4 @@
-;;; project-template --- Generate dircetory structures from templates
+;;; kaarvok --- Generate directory structures from templates
;; Copyright (C) 2013 Tom Willemse
@@ -6,21 +6,20 @@
;; Keywords: convenience
;; Package-Version: 0.1.0
-;; This file is part of project-template.
+;; This file is part of kaarvok.
-;; project-template is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License as
-;; published by the Free Software Foundation, either version 3 of the
-;; License, or (at your option) any later version.
+;; kaarvok is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
-;; project-template is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; kaarvok is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;; General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with project-template.
-;; If not, see <http://www.gnu.org/licenses/>.
+;; along with kaarvok. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
@@ -31,85 +30,88 @@
;;; Code:
-(defvar pt-templates-directory "~/.emacs.d/templates"
+(defvar kaarvok-templates-directory "~/.emacs.d/templates"
"Where templates are stored.")
-(defvar pt-template-var-delimiter "$!"
+(defvar kaarvok-template-var-delimiter "$!"
"Strings used to delimit variable names.")
-(defun pt-template-var-regexp ()
+(defun kaarvok-template-var-regexp ()
"Create the regexp which identifies a variable in a template."
- (concat pt-template-var-delimiter
- "\\([^" pt-template-var-delimiter " \t\n]+\\)"
- pt-template-var-delimiter))
+ (concat kaarvok-template-var-delimiter
+ "\\([^" kaarvok-template-var-delimiter " \t\n]+\\)"
+ kaarvok-template-var-delimiter))
-(defvar pt-value-alist nil
- "A placeholder where replacement values will be kept. This is
- let-bound when `pt-create-project-from-template' is called and
- should not be edited directly.")
+(defvar kaarvok-value-alist nil
+ "A placeholder where replacement values will be kept.
-(defun pt-replace-all (from to str)
+This is let-bound when `kaarvok-create-project-from-template' is
+called and should not be edited directly.")
+
+(defun kaarvok-replace-all (from to str)
"Simply replace all occurrences of FROM with TO in STR."
(while (string-match from str)
(set 'str (replace-match to t t str)))
str)
-(defun pt-get-replacement (key)
+(defun kaarvok-get-replacement (key)
"Find, or ask for and save, the replacement value for KEY."
- (let ((replacement (assoc key pt-value-alist)))
+ (let ((replacement (assoc key kaarvok-value-alist)))
(when (eq replacement nil)
(set 'replacement
`(,key . ,(read-from-minibuffer (concat key ": "))))
- (add-to-list 'pt-value-alist replacement))
+ (add-to-list 'kaarvok-value-alist replacement))
replacement))
-(defun pt-parse-file-name (filename)
- "Parse FILENAME and replace all __variables__ with values
-provided by the user."
- (while (string-match (pt-template-var-regexp) filename)
+(defun kaarvok-parse-file-name (filename)
+ "Parse FILENAME and replace all variables.
+
+Use values provided by the user."
+ (while (string-match (kaarvok-template-var-regexp) filename)
(let* ((tpl-var (match-string 1 filename))
- (replacement-value (pt-get-replacement tpl-var)))
+ (replacement-value (kaarvok-get-replacement tpl-var)))
(set 'filename (replace-match (cdr replacement-value) t t
filename))))
(let ((noext (file-name-sans-extension filename))
(ext (file-name-extension filename t)))
- (set 'noext (pt-replace-all "\\." "/" noext))
+ (set 'noext (kaarvok-replace-all "\\." "/" noext))
(concat noext ext)))
-(defun pt-parse-file (file)
- "Parse FILE and replace all __variables__ with values provided by
-the user."
+(defun kaarvok-parse-file (file)
+ "Parse FILE and replace all variables."
(insert-file-contents file)
- (while (re-search-forward (pt-template-var-regexp) nil t)
+ (while (re-search-forward (kaarvok-template-var-regexp) nil t)
(let* ((tpl-var (match-string 1))
- (replacement-value (pt-get-replacement tpl-var)))
+ (replacement-value (kaarvok-get-replacement tpl-var)))
(replace-match (cdr replacement-value) t t))))
-(defun pt-parse-and-copy-file (src dst)
- "Copy SRC to DST, but, if necessary, parse the file and filename
-first."
- (let* ((parsed-dst (pt-parse-file-name dst))
+(defun kaarvok-parse-and-copy-file (src dst)
+ "Copy SRC to DST.
+
+If necessary, parse the file and filename first."
+ (let* ((parsed-dst (kaarvok-parse-file-name dst))
(parsed-dst-dir (file-name-directory parsed-dst)))
(when (not (file-exists-p parsed-dst-dir))
(make-directory parsed-dst-dir t))
(with-temp-file parsed-dst
- (pt-parse-file src))))
+ (kaarvok-parse-file src))))
-(defun pt-copy-directory (directory to)
- "Copy template directory DIRECTORY to the location indicated by
-TO and parse both paths and files in the process."
+(defun kaarvok-copy-directory (directory to)
+ "Copy template DIRECTORY to TO.
+
+Parse both paths and files in the process."
(let ((files (directory-files directory t "[^.]\\{1,2\\}$" t)))
(while files
(let* ((src-filename (car files))
(dst-filename
(concat to "/" (file-name-nondirectory src-filename))))
(if (file-directory-p src-filename)
- (pt-copy-directory src-filename dst-filename)
+ (kaarvok-copy-directory src-filename dst-filename)
(if (string-equal (file-name-extension src-filename) "etpl")
- (pt-parse-and-copy-file
+ (kaarvok-parse-and-copy-file
src-filename (file-name-sans-extension dst-filename))
(if (not (file-exists-p to))
(make-directory to t)
@@ -122,13 +124,14 @@ TO and parse both paths and files in the process."
(set 'files (cdr files)))))
;;;###autoload
-(defun pt-create-project-from-template (template destination)
- "Take TEMPLATE, copy it to DESTINATION and replace any
-occurrences of __variables__ with user-povided values."
+(defun kaarvok-create-project-from-template (template destination)
+ "Take TEMPLATE, copy it to DESTINATION.
+
+Replace any occurrences of variables with user-povided values."
(interactive "MTemplate: \nGDestination: ")
- (let ((pt-value-alist))
- (pt-copy-directory
- (concat pt-templates-directory "/" template) destination)))
+ (let ((kaarvok-value-alist))
+ (kaarvok-copy-directory
+ (concat kaarvok-templates-directory "/" template) destination)))
-(provide 'project-template)
-;;; project-template.el ends here
+(provide 'kaarvok)
+;;; kaarvok.el ends here
diff --git a/pt b/pt
deleted file mode 100755
index c108100..0000000
--- a/pt
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-# pt -- A small shell wrapper around project-template
-# Copyright (C) 2013 Tom Willemse <tom at ryuslash dot org>
-
-# This file is part of project-template.
-
-# project-template is free software: you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-
-# project-template is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with project-template.
-# If not, see <http://www.gnu.org/licenses/>.
-
-if [ "${#@}" -lt 2 ]; then
- echo "Usage: $0 <template name> <destination>"
- exit 1
-fi
-
-/usr/bin/emacs -Q -batch -l project-template.el -eval \
- "(pt-create-project-from-template \"$1\" \"$2\")"