-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathframework.go
49 lines (40 loc) · 1.21 KB
/
framework.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
package catfruits
// DefaultFrameworkFuncs is default framework set
var DefaultFrameworkFuncs = map[string]FrameworkFunc{
// Ruby
"Ruby on Rails": fwRails,
"Padrino": fwPadrino,
// JavaScript
"Vue": fwJSGen("vue"),
"React": fwJSGen("react"),
"Angular": fwJSGen("angular"),
"backbone": fwJSGen("backbone"),
// PHP
"CakePHP": fwCakePHP,
// JVM
"Play Framework": fwPlayFramework,
}
// FWRails detects Ruby on Rails
func fwRails(sc *Scanner) (bool, error) {
return sc.hasPackage("gem", "rails") ||
sc.FileExist("script/rails") ||
sc.FileExist("bin/rails"), nil
}
func fwPadrino(sc *Scanner) (bool, error) {
return sc.FileContains("config/apps.rb", "Padrino") || sc.FileContains("config/boot.rb", "Padrino"), nil
}
// bower と npm から探索する関数をかえす
func fwJSGen(name string) FrameworkFunc {
return func(sc *Scanner) (bool, error) {
return sc.hasPackage("bower", name) ||
sc.hasPackage("npm", name), nil
}
}
func fwCakePHP(sc *Scanner) (bool, error) {
return sc.FileExist("cake/bootstrap.php") ||
sc.FileExist("lib/Cake/bootstrap.php"), nil
}
func fwPlayFramework(sc *Scanner) (bool, error) {
return sc.FileExist("activator") ||
sc.FileExist("activator.bat"), nil
}