Ejemplo n.º 1
0
func htmlmin(c *config.Config, q *registry.Queue) error {
	size := c.CountDefault("htmlmin")
	for i := 0; i < size; i++ {
		source := c.GetRequired("htmlmin[%d].source", i)
		dest := c.GetRequired("htmlmin[%d].dest", i)
		if err := htmlcompressor(source, dest); err != nil {
			return fmt.Errorf("html compress failed: %s", err)
		}
	}

	return nil
}
Ejemplo n.º 2
0
func parseAttrs(data *config.Config, object string, idx int) map[string]string {
	m := map[string]string{}

	size := data.CountDefault("fields[%d].%s", idx, object)
	for i := 0; i < size; i++ {
		name := data.GetRequired("fields[%d].%s[%d].name", idx, object, i)
		value := data.GetDefault("fields[%d].%s[%d].value", "", idx, object, i)
		m[name] = value
	}

	return m
}
Ejemplo n.º 3
0
func Parse(data *config.Config, idx int) []*Validator {
	validators := []*Validator{}

	nvalidators := data.CountDefault("fields[%d].validators", idx)
	for i := 0; i < nvalidators; i++ {
		name := data.GetRequired("fields[%d].validators[%d].name", idx, i)
		value := data.GetDefault("fields[%d].validators[%d].value", "", idx, i)
		msg := data.GetDefault("fields[%d].validators[%d].msg", "", idx, i)
		validator := createValidator(name, value, msg)
		if validator == nil {
			panic("bad validator name: " + name)
		}
		validators = append(validators, validator)
	}

	return validators
}
Ejemplo n.º 4
0
func watch(c *config.Config, q *registry.Queue) error {
	size := c.CountRequired("watch")
	for i := 0; i < size; i++ {
		// Extract the task name
		task := c.GetRequired("watch[%d].task", i)

		// Extract the paths
		paths := []string{}
		pathsSize := c.CountDefault("watch[%d].paths", i)
		for j := 0; j < pathsSize; j++ {
			paths = append(paths, c.GetRequired("watch[%d].paths[%d]", i, j))
		}

		// Init the watcher
		if err := watcher.Dirs(paths, task); err != nil {
			return fmt.Errorf("watch dirs failed: %s", err)
		}

	}
	return nil
}
Ejemplo n.º 5
0
func parseFields(data *config.Config, spec string) []*field {
	fields := []*field{}

	size := data.CountRequired("%s", spec)
	for i := 0; i < size; i++ {
		field := &field{
			Key:        data.GetDefault("%s[%d].key", "", spec, i),
			Kind:       data.GetRequired("%s[%d].kind", spec, i),
			Store:      data.GetDefault("%s[%d].store", "", spec, i),
			Condition:  data.GetDefault("%s[%d].condition", "", spec, i),
			Validators: make([]*validator, 0),
		}

		if field.Kind == "Array" || field.Kind == "Object" || field.Kind == "Conditional" {
			newSpec := fmt.Sprintf("%s[%d].fields", spec, i)
			field.Fields = parseFields(data, newSpec)
		}

		validatorsSize := data.CountDefault("%s[%d].validators", spec, i)
		for j := 0; j < validatorsSize; j++ {
			v := &validator{
				Name:  data.GetRequired("%s[%d].validators[%d].name", spec, i, j),
				Value: data.GetDefault("%s[%d].validators[%d].value", "", spec, i, j),
			}

			usesSize := data.CountDefault("%s[%d].validators[%d].use", spec, i, j)
			for k := 0; k < usesSize; k++ {
				value := data.GetDefault("%s[%d].validators[%d].use[%d]", "", spec, i, j, k)
				v.Uses = append(v.Uses, value)
			}

			field.Validators = append(field.Validators, v)
		}

		fields = append(fields, field)
	}

	return fields
}
Ejemplo n.º 6
0
func readServeConfig(c *config.Config) (*serveConfig, error) {
	sc := &serveConfig{
		base: true,
		url:  c.GetDefault("serve.url", "http://localhost:8080/"),
	}

	method := c.GetDefault("serve.base", "")
	if method != "" && method != "proxy" && method != "cb" {
		return nil, fmt.Errorf("serve.base config must be 'proxy' (default) or 'cb'")
	}
	sc.base = (method == "cb")

	size := c.CountDefault("serve.proxy")
	for i := 0; i < size; i++ {
		pc := proxyConfig{
			host: fmt.Sprintf("%s:%d", c.GetRequired("serve.proxy[%d].host", i), *config.Port),
			url:  c.GetRequired("serve.proxy[%d].url", i),
		}
		sc.proxy = append(sc.proxy, pc)
	}

	return sc, nil
}