template rendering done.

This commit is contained in:
Sameer Rahmani 2010-12-28 17:16:16 +03:30
parent 93233433d3
commit 8d95c57a5f
3 changed files with 54 additions and 12 deletions

View File

@ -59,21 +59,48 @@
)
(defun project/render (data)
"Render the data with known context variables and return rendered daa"
(setq data (replace-regexp-in-string "::project::" project-name data))
(setq data (replace-regexp-in-string "::desc::" project-desc data))
(setq data (replace-regexp-in-string "::author::" project-author data))
(setq data (replace-regexp-in-string "::email::" project-author-email data))
(setq data (replace-regexp-in-string "::year::" (format-time-string "%Y") data))
)
(defun insert-license ()
"Return the prepared license string."
(if project-license
(let (license-data license-file)
(setq license-file (concat TEMPLATESPATH (concat "licenses/" (concat project-license ".tmpl"))))
;; loading template file
(setq license-data (io/read license-file))
(setq license-data (replace-regexp-in-string "::project::" project-name license-data))
(setq license-data (replace-regexp-in-string "::desc::" project-desc license-data))
(setq license-data (replace-regexp-in-string "::author::" project-author license-data))
(setq license-data (replace-regexp-in-string "::email::" project-author-email license-data))
(setq license-data (replace-regexp-in-string "::year::" (format-time-string "%Y") license-data))
;; Rendering template
;; (setq license-data (replace-regexp-in-string "::project::" project-name license-data))
;; (setq license-data (replace-regexp-in-string "::desc::" project-desc license-data))
;; (setq license-data (replace-regexp-in-string "::author::" project-author license-data))
;; (setq license-data (replace-regexp-in-string "::email::" project-author-email license-data))
;; (setq license-data (replace-regexp-in-string "::year::" (format-time-string "%Y") license-data))
(setq license-data (project/render license-data))
(identity license-data)
)
(let (license-data)
(setq license-data "Put you GOD DAMN, FUCKing license here")
)
)
)
)
(defun project/render-template (template)
"Render the template and return the rendered template string"
(let (data license-data)
(setq data (io/read template))
(setq data (project/render data))
;; add the license header
(setq license-data (insert-license))
(setq data (replace-regexp-in-string "::license::" license-data data))
)
)

View File

@ -48,12 +48,15 @@
(defun generic-c () "Create a generic type C project"
(interactive)
(c-new-project)
(let (current-template-file license-data filelist)
(setq current-template-file (concat TEMPLATESPATH "c/generic_c/main.c.tmpl"))
(setq filelist (file-expand-wildcards load-elc))
;; add the license header
(setq license-data (insert-license))
(let (template-file-regexp license-data filelist cur template-data)
(setq template-file-regexp (concat TEMPLATESPATH "c/generic_c/*.tmpl"))
(setq filelist (file-expand-wildcards template-file-regexp))
(while filelist
(setq cur (pop filelist))
(setq template-data (project/render-template cur))
(setq template-data (replace-regexp-in-string "::unixname::" unix-project-name template-data))
(project/write-dest-file cur template-data)
)
)
)
(init-menus)

View File

@ -0,0 +1,12 @@
/*
::license::
*/
#include <stdio.h>
#include "::unixname::.h"
int main (int argc, char *argv[])
{
printf("Hello SHIT World\n");
return 0;
}