shared project
This commit is contained in:
commit
1ddc196741
63
.gitignore
vendored
Normal file
63
.gitignore
vendored
Normal file
|
@ -0,0 +1,63 @@
|
|||
# Created by .ignore support plugin (hsz.mobi)
|
||||
### JetBrains template
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff:
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/dictionaries
|
||||
|
||||
# Sensitive or high-churn files:
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.xml
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
|
||||
# Gradle:
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Mongo Explorer plugin:
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
## File-based project format:
|
||||
*.iws
|
||||
|
||||
## Plugin-specific files:
|
||||
|
||||
# IntelliJ
|
||||
/out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
### Go template
|
||||
# Binaries for programs and plugins
|
||||
*.exe
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Test binary, build with `go test -c`
|
||||
*.test
|
||||
|
||||
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||
*.out
|
||||
|
||||
# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736
|
||||
.glide/
|
||||
|
||||
.idea/
|
||||
.idea/libraries/
|
10
.idea/libraries/Go_SDK.xml
Normal file
10
.idea/libraries/Go_SDK.xml
Normal file
|
@ -0,0 +1,10 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Go SDK">
|
||||
<CLASSES>
|
||||
<root url="file://$PROJECT_DIR$/../../../../../1.8/src" />
|
||||
</CLASSES>
|
||||
<SOURCES>
|
||||
<root url="file://$PROJECT_DIR$/../../../../../1.8/src" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
97
config.go
Normal file
97
config.go
Normal file
|
@ -0,0 +1,97 @@
|
|||
package config_manager_go
|
||||
|
||||
import (
|
||||
"os"
|
||||
"log"
|
||||
"io/ioutil"
|
||||
"loafle.com/overflow/crawler_go/config"
|
||||
"encoding/json"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const (
|
||||
OVERFLOW_CONFIG_PATH = "/Overflow/Config"
|
||||
)
|
||||
type ConfigManager struct {
|
||||
|
||||
}
|
||||
|
||||
func (config *ConfigManager) readByTempConfig(c *config.Config) (error) {
|
||||
pwd, err := os.Getwd()
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
b, err := ioutil.ReadFile(pwd+"/example.json")
|
||||
err = json.Unmarshal(b,&c)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (config *ConfigManager) writeConfig(c config.Config) (error){
|
||||
var fileName = c.Id
|
||||
fileJson, _ := json.Marshal(c)
|
||||
path, _ := config.getFilePath(c)
|
||||
|
||||
err := ioutil.WriteFile(path + "/" + fileName + ".json", fileJson, 0644)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (config *ConfigManager) getFilePath(c config.Config) (string, error){
|
||||
var parentPath string = strings.Join(configSettingFolder,"")
|
||||
|
||||
cctmp := c.Crawler.Container
|
||||
cctmps := strings.Split(cctmp,"_")
|
||||
containerPath := cctmps[0]
|
||||
|
||||
cns := strings.Split(c.Crawler.Name, "_")
|
||||
cn := cns[0]
|
||||
|
||||
rs := parentPath + OVERFLOW_CONFIG_PATH +"/"+containerPath+"/"+cn
|
||||
|
||||
err := checkFolder(rs)
|
||||
|
||||
return rs, err
|
||||
}
|
||||
|
||||
func checkFolder(path string) (error) {
|
||||
|
||||
_, err := os.Stat(path)
|
||||
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
|
||||
if os.IsNotExist(err) {
|
||||
os.MkdirAll(path, os.ModePerm)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Start(b []byte) {
|
||||
// config json stream read
|
||||
// config json byte read
|
||||
|
||||
var err error
|
||||
cm := ConfigManager{}
|
||||
c := config.Config{}
|
||||
|
||||
if len(b) == 0 || b == nil {
|
||||
err = cm.readByTempConfig(&c)
|
||||
} else {
|
||||
err = json.Unmarshal(b, &c)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
cm.writeConfig(c)
|
||||
}
|
||||
|
||||
|
||||
// config json save folder
|
||||
// create folder for config
|
||||
// config json parse
|
6
config_darwin.go
Normal file
6
config_darwin.go
Normal file
|
@ -0,0 +1,6 @@
|
|||
package config_manager_go
|
||||
|
||||
import "os"
|
||||
|
||||
var hasVendorName = true
|
||||
var configSettingFolder = []string{os.Getenv("/etc/overflow/config")}
|
8
config_test.go
Normal file
8
config_test.go
Normal file
|
@ -0,0 +1,8 @@
|
|||
package config_manager_go
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestStart(t *testing.T) {
|
||||
|
||||
Start(nil)
|
||||
}
|
6
config_windows.go
Normal file
6
config_windows.go
Normal file
|
@ -0,0 +1,6 @@
|
|||
package config_manager_go
|
||||
|
||||
import "os"
|
||||
|
||||
var hasVendorName = true
|
||||
var configSettingFolder = []string{os.Getenv("PROGRAMDATA")}
|
23
example.json
Normal file
23
example.json
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"id" : "SOEJWEOJWOEJOSDJFOASDJFOSDFO2903870928734",
|
||||
"target" : {
|
||||
"connection" : {
|
||||
"ip" : "192.168.1.104",
|
||||
"port" : "6379",
|
||||
"ssl" : false,
|
||||
"portType" : "tcp"
|
||||
},
|
||||
"auth" : {
|
||||
|
||||
}
|
||||
},
|
||||
"schedule" : {
|
||||
"interval" : "10"
|
||||
},
|
||||
"crawler" : {
|
||||
"name":"redis_protocol_crawler",
|
||||
"container":"network_crawler"
|
||||
},
|
||||
"items" : [
|
||||
]
|
||||
}
|
Loading…
Reference in New Issue
Block a user