From 21a1dc8290e4a0803ea26d6fc5b6d6e787ae5577 Mon Sep 17 00:00:00 2001 From: arnaucode Date: Sat, 24 Jun 2017 12:21:47 +0200 Subject: [PATCH] implemented copy files in directories without templating, with concurrency in all subdirectories --- example/webInput/app.css | 59 ---------------------------- example/webInput/css/app.css | 1 + example/webInput/css/colors.css | 1 + example/webInput/js/scripts1.js | 1 + example/webInput/js/scripts2.js | 1 + example/webInput/konstruiConfig.json | 11 ++++-- example/webOutput/app.css | 59 ---------------------------- example/webOutput/css/app.css | 1 + example/webOutput/css/colors.css | 1 + example/webOutput/js/scripts1.js | 1 + example/webOutput/js/scripts2.js | 1 + main.go | 42 +++++++++++++++++++- readKonstruiConfig.go | 1 + 13 files changed, 57 insertions(+), 123 deletions(-) delete mode 100644 example/webInput/app.css create mode 100644 example/webInput/css/app.css create mode 100644 example/webInput/css/colors.css create mode 100644 example/webInput/js/scripts1.js create mode 100644 example/webInput/js/scripts2.js delete mode 100644 example/webOutput/app.css create mode 100644 example/webOutput/css/app.css create mode 100644 example/webOutput/css/colors.css create mode 100644 example/webOutput/js/scripts1.js create mode 100644 example/webOutput/js/scripts2.js diff --git a/example/webInput/app.css b/example/webInput/app.css deleted file mode 100644 index 5ace24d..0000000 --- a/example/webInput/app.css +++ /dev/null @@ -1,59 +0,0 @@ -.collection{ - border: 0!important; -} -.collection-item{ - background-color: rgba(0,0,0,0)!important; - border: 0px!important; -} -.collection-item:hover{ - background-color: rgba(255,255,255,0.1)!important; -} - - -/* login */ -.o_loginBackground{ - position: absolute; - - height: 100%!important; - width: 100%; - min-height: auto; - -webkit-background-size: cover; - -moz-background-size: cover; - background-size: cover; - -o-background-size: cover; - background-position: center; - background-image: url('img/loginBackground.jpg'); - text-align: center; - /*color: white;*/ - - /* Create the parallax scrolling effect */ - background-attachment: fixed; - background-position: center; - background-repeat: no-repeat; - background-size: cover; - - color: #ffffff; - -} -@font-face { - font-family: 'Otterly Adorable'; - src: url('fonts/fourHand_TRIAL.ttf'); -} -.o_loginBackground h1{ - color: #ffffff!important; - margin: 10px; - font-family: 'Otterly Adorable' - /*font-weight: bold;*/ -} - -.o_floatRight{ - float: right; -} -.o_textRight{ - text-align: right; -} -.o_badge{ - border-radius: 8px; - margin: 5px; - padding: 2px 5px; -} diff --git a/example/webInput/css/app.css b/example/webInput/css/app.css new file mode 100644 index 0000000..2baf425 --- /dev/null +++ b/example/webInput/css/app.css @@ -0,0 +1 @@ +/* here the style */ diff --git a/example/webInput/css/colors.css b/example/webInput/css/colors.css new file mode 100644 index 0000000..6527b8b --- /dev/null +++ b/example/webInput/css/colors.css @@ -0,0 +1 @@ +/* here the style of colours */ diff --git a/example/webInput/js/scripts1.js b/example/webInput/js/scripts1.js new file mode 100644 index 0000000..29063ba --- /dev/null +++ b/example/webInput/js/scripts1.js @@ -0,0 +1 @@ +//here scripts \ No newline at end of file diff --git a/example/webInput/js/scripts2.js b/example/webInput/js/scripts2.js new file mode 100644 index 0000000..befc756 --- /dev/null +++ b/example/webInput/js/scripts2.js @@ -0,0 +1 @@ +//here scripts 2 \ No newline at end of file diff --git a/example/webInput/konstruiConfig.json b/example/webInput/konstruiConfig.json index 9790d42..57a9a45 100644 --- a/example/webInput/konstruiConfig.json +++ b/example/webInput/konstruiConfig.json @@ -5,11 +5,14 @@ "website": "arnaucode.com", "files": [ "index.html", - "projects.html", - "app.css" + "projects.html" ], "repeatPages": [{ "htmlPage": "projectPage.html", "data": "templates/projectTemplate.json" - }] -} + }], + "copyRaw": [ + "css", + "js" + ] +} \ No newline at end of file diff --git a/example/webOutput/app.css b/example/webOutput/app.css deleted file mode 100644 index 5ace24d..0000000 --- a/example/webOutput/app.css +++ /dev/null @@ -1,59 +0,0 @@ -.collection{ - border: 0!important; -} -.collection-item{ - background-color: rgba(0,0,0,0)!important; - border: 0px!important; -} -.collection-item:hover{ - background-color: rgba(255,255,255,0.1)!important; -} - - -/* login */ -.o_loginBackground{ - position: absolute; - - height: 100%!important; - width: 100%; - min-height: auto; - -webkit-background-size: cover; - -moz-background-size: cover; - background-size: cover; - -o-background-size: cover; - background-position: center; - background-image: url('img/loginBackground.jpg'); - text-align: center; - /*color: white;*/ - - /* Create the parallax scrolling effect */ - background-attachment: fixed; - background-position: center; - background-repeat: no-repeat; - background-size: cover; - - color: #ffffff; - -} -@font-face { - font-family: 'Otterly Adorable'; - src: url('fonts/fourHand_TRIAL.ttf'); -} -.o_loginBackground h1{ - color: #ffffff!important; - margin: 10px; - font-family: 'Otterly Adorable' - /*font-weight: bold;*/ -} - -.o_floatRight{ - float: right; -} -.o_textRight{ - text-align: right; -} -.o_badge{ - border-radius: 8px; - margin: 5px; - padding: 2px 5px; -} diff --git a/example/webOutput/css/app.css b/example/webOutput/css/app.css new file mode 100644 index 0000000..2baf425 --- /dev/null +++ b/example/webOutput/css/app.css @@ -0,0 +1 @@ +/* here the style */ diff --git a/example/webOutput/css/colors.css b/example/webOutput/css/colors.css new file mode 100644 index 0000000..6527b8b --- /dev/null +++ b/example/webOutput/css/colors.css @@ -0,0 +1 @@ +/* here the style of colours */ diff --git a/example/webOutput/js/scripts1.js b/example/webOutput/js/scripts1.js new file mode 100644 index 0000000..29063ba --- /dev/null +++ b/example/webOutput/js/scripts1.js @@ -0,0 +1 @@ +//here scripts \ No newline at end of file diff --git a/example/webOutput/js/scripts2.js b/example/webOutput/js/scripts2.js new file mode 100644 index 0000000..befc756 --- /dev/null +++ b/example/webOutput/js/scripts2.js @@ -0,0 +1 @@ +//here scripts 2 \ No newline at end of file diff --git a/main.go b/main.go index 47bd9d7..215a008 100644 --- a/main.go +++ b/main.go @@ -35,6 +35,7 @@ func parseDir(folderPath string, newDir string) { } } func startTemplating(folderPath string, newDir string) { + //do templating for each file in konstruiConfig.Files in konstruiConfig.Files for i := 0; i < len(konstruiConfig.Files); i++ { fName := konstruiConfig.Files[i] fileNameSplitted := strings.Split(fName, ".") @@ -49,6 +50,7 @@ func startTemplating(folderPath string, newDir string) { } } + //do templating for the file pages in konstruiConfig.RepeatPages c.Cyan("starting to generate Pages to repeat") for i := 0; i < len(konstruiConfig.RepeatPages); i++ { pageTemplate, data := getHtmlAndDataFromRepeatPages(konstruiConfig.RepeatPages[i]) @@ -59,15 +61,53 @@ func startTemplating(folderPath string, newDir string) { writeFile(newDir+"/"+data[j]["pageName"]+"Page.html", generatedPage) } } + + //copy the konstruiConfig.CopyRaw files without modificate them + for i := 0; i < len(konstruiConfig.CopyRaw); i++ { + fName := konstruiConfig.CopyRaw[i] + c.Yellow(fName) + fileNameSplitted := strings.Split(fName, ".") + if len(fileNameSplitted) > 1 { + //is a file + copyFileRaw(folderPath, fName, newDir) + } else { + //is a directory + c.Red(folderPath + "/" + fName) + copyDirRaw(folderPath, fName, newDir) + } + } +} +func copyDirRaw(fromDir string, currentDir string, newDir string) { + filesList, _ := ioutil.ReadDir("./" + fromDir + "/" + currentDir) + fmt.Println(fromDir + "/" + currentDir) + c.Green(newDir + "/" + currentDir) + os.MkdirAll(newDir+"/"+currentDir, os.ModePerm) + for _, f := range filesList { + fileNameSplitted := strings.Split(f.Name(), ".") + if len(fileNameSplitted) > 1 { + //is a file + copyFileRaw(fromDir+"/"+currentDir, f.Name(), newDir+"/"+currentDir) + } else { + //is a directory + copyDirRaw(fromDir+"/"+currentDir, f.Name(), newDir+"/"+currentDir) + } + } +} +func copyFileRaw(fromDir string, fName string, newDir string) { + c.Yellow("copying raw " + fromDir + "//" + fName) + fileContent := readFile(fromDir + "/" + fName) + writeFile(newDir+"/"+fName, fileContent) } func main() { c.Green("getting files from /webInput") c.Green("getting conifg from file konstruiConfig.json") + //first reads the konstrui.Config.json readKonstruiConfig(rawFolderPath + "/" + konstruiConfigFile) c.Green("configuration:") fmt.Println(konstruiConfig.Files) c.Green("templating") //parseDir(rawFolderPath, newFolderPath) + startTemplating(rawFolderPath, newFolderPath) - c.Green("webpage finished, wiles at /webOutput") + c.Green("webpage finished, files at /webOutput") } diff --git a/readKonstruiConfig.go b/readKonstruiConfig.go index 2924232..ece3dba 100644 --- a/readKonstruiConfig.go +++ b/readKonstruiConfig.go @@ -20,6 +20,7 @@ type KonstruiConfig struct { Website string `json:"website"` Files []string `json:"files"` RepeatPages []RepeatPages + CopyRaw []string `json:"copyRaw"` } var konstruiConfig KonstruiConfig