func parseFuseConfig()

in cmd/mountv1.go [286:337]


func parseFuseConfig(config []string) error {
	for _, v := range config {
		parameter := strings.Split(v, "=")
		if len(parameter) > 2 || len(parameter) <= 0 {
			return errors.New(common.FuseAllowedFlags)
		}

		v = strings.TrimSpace(v)
		if ignoreFuseOptions(v) {
			continue
		} else if v == "allow_other" || v == "allow_other=true" {
			bfv2AllowOtherOption = true
		} else if v == "allow_other=false" {
			bfv2AllowOtherOption = false
		} else if v == "nonempty" {
			bfv2NonEmptyMountOption = true
		} else if strings.HasPrefix(v, "attr_timeout=") {
			timeout, err := strconv.ParseUint(parameter[1], 10, 32)
			if err != nil {
				return fmt.Errorf("failed to parse attr_timeout [%s]", err.Error())
			}
			bfv2FuseConfigOptions.AttributeExpiration = uint32(timeout)
		} else if strings.HasPrefix(v, "entry_timeout=") {
			timeout, err := strconv.ParseUint(parameter[1], 10, 32)
			if err != nil {
				return fmt.Errorf("failed to parse entry_timeout [%s]", err.Error())
			}
			bfv2FuseConfigOptions.EntryExpiration = uint32(timeout)
		} else if strings.HasPrefix(v, "negative_timeout=") {
			timeout, err := strconv.ParseUint(parameter[1], 10, 32)
			if err != nil {
				return fmt.Errorf("failed to parse negative_timeout [%s]", err.Error())
			}
			bfv2FuseConfigOptions.NegativeEntryExpiration = uint32(timeout)
		} else if v == "ro" {
			bfv2ReadOnlyOption = true
		} else if v == "allow_root" {
			bfv2FuseConfigOptions.DefaultPermission = 700
		} else if strings.HasPrefix(v, "umask=") {
			permission, err := strconv.ParseUint(parameter[1], 10, 32)
			if err != nil {
				return fmt.Errorf("failed to parse umask [%s]", err.Error())
			}
			perm := ^uint32(permission) & 777
			bfv2FuseConfigOptions.DefaultPermission = perm
		} else {
			return errors.New(common.FuseAllowedFlags)
		}
	}

	return nil
}