-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutilities.go
90 lines (62 loc) · 1.93 KB
/
utilities.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package main
func getVariablesFromURL(URL string)([]string){
route := URL
flag :=0
currentVar := ""
allVars := []string{}
for _,k := range route{
if ( k=='/' && currentVar != "") {
flag = 0
allVars = append(allVars,currentVar)
currentVar = ""
}
if flag==1 {
currentVar = currentVar + string(k)
}
if k==':' {
flag = 1
}
}
if (currentVar != ""){
flag = 0
allVars = append(allVars,currentVar)
currentVar = ""
}
return allVars
}
func generateRouterCall(details RouterDetails) string{
var routerCall string
if details.UseCase == "option1" {
var funcName string
funcName = "ServeHTML"+ (details.RouterNumber)
routerCall = " server." + details.Method + "(\"" + details.RouterURL + "\"," + funcName +")"
}
if details.UseCase == "option2" {
routerCall = " server.ServeFiles(\"" + (details.PathToCSS) + "*filepath\",http.Dir(\"."+ (details.PathToCSS) + "\"))"
}
return routerCall
}
func generateRouterFunc(details RouterDetails) string{
var funcDefn string
funcDefn = " "
if details.UseCase == "option1" {
funcName := "ServeHTML"+ (details.RouterNumber)
args := "(w http.ResponseWriter , r *http.Request, _ httprouter.Params) {"
BeginfuncDefn := "<br><br>func " + funcName + args
BeginFuncBody := "<br> path := \"" + details.PathToHTML + "\"<br>"
subFunc1 := " homepage , err := template.ParseFiles( path )<br>"
errCheck := " if(err!=nil){<br> log.Println(err)<br> }"
subFunc2 := "<br> homepage.Execute(w,nil)<br>}<br>"
funcDefn = BeginfuncDefn + BeginFuncBody + subFunc1 + errCheck + subFunc2
}
return funcDefn
}
func getPackages(action string) string{
var pkgList []string
if action[1:]=="option1" {
pkgList = []string{"net/http","httprouter","html/template","fmt","os","log"}
}else if action[1:]=="option2" {
pkgList = []string{"net/http","httprouter","fmt","os"}
}
return getPackageList(pkgList)
}