Example #1
0
func (p yamlParser) ParseFromMirror(mirror string) ([]models.Plugin, error) {
	var file io.Reader
	var err error
	if p.isUrl(mirror) {
		urlFinal, err := url.ParseRequestURI(mirror)
		extension := fileManage.Ext(urlFinal.Path)
		if extension == "" {
			var pluginsJson models.PluginsJson
			response, err := http.Get(mirror + "/list")
			if err != nil {
				p.logger.Write([]byte("Skip mirror not valid '" + mirror + "/list':" + err.Error()))
				return []models.Plugin{}, nil
			}
			bytesJson, err := ioutil.ReadAll(response.Body)
			if err != nil {
				p.logger.Write([]byte("Skip mirror not valid '" + mirror + "':" + err.Error()))
				return []models.Plugin{}, nil
			}
			if err := json.Unmarshal(bytesJson, &pluginsJson); err != nil {
				p.logger.Write([]byte("Skip mirror not valid json '" + mirror + "':" + err.Error()))
				return []models.Plugin{}, nil
			}
			return pluginsJson.Plugins, nil
		}
		if extension != ".yml" && extension != ".yaml" {
			p.logger.Write([]byte("Skip mirror not a valid url '" + mirror + "'"))
			return []models.Plugin{}, nil
		}
		response, err := http.Get(mirror)
		if err != nil {
			p.logger.Write([]byte("Skip mirror url does not exist '" + mirror + "':" + err.Error()))
			return []models.Plugin{}, nil
		}
		file = response.Body
	} else {
		dir := fileManage.Dir(p.filePath)
		file, err = os.Open(dir + "/" + mirror)
		if err != nil {
			p.logger.Write([]byte("Skip mirror file does not exist '" + mirror + "':" + err.Error()))
			return []models.Plugin{}, nil
		}
	}
	plugins, err := p.ParseFromIoReader(file)
	return plugins, err
}
Example #2
0
func init() {
	Config = &ConfigModel{
		Token:     "",
		BlobFiles: make([]BlobFile, 0),
	}
	wd, err := os.Getwd()
	checkError(err)
	ConfigPath = path.Join(wd, CONFIG_FILE)
	if _, err := os.Stat(ConfigPath); os.IsNotExist(err) {
		Config.save()
		loadFromEnvVar()
		return
	}
	data, err := ioutil.ReadFile(ConfigPath)
	checkError(err)
	err = json.Unmarshal(data, Config)
	checkError(err)
	if Config.GetToken() == "" {
		loadFromEnvVar()
	}
}