func findEnvironmentMostRecentSequenceNumber()

in internal/sequence/sequence_linux.go [44:65]


func findEnvironmentMostRecentSequenceNumber(configFolder string) (int, error) {
	g, err := filepath.Glob(configFolder + "/*.settings")
	if err != nil {
		return 0, errorhelper.AddStackToError(err)
	}

	sequence := make([]int, len(g))
	for _, v := range g {
		f := filepath.Base(v)
		i, err := strconv.Atoi(strings.Replace(f, ".settings", "", 1))
		if err != nil {
			return 0, errorhelper.AddStackToError(fmt.Errorf("can't parse int from filename: %s", f))
		}
		sequence = append(sequence, i)
	}

	if len(sequence) == 0 {
		return 0, errorhelper.AddStackToError(fmt.Errorf("can't find out seqnum from %s, not enough files", configFolder))
	}
	sort.Sort(sort.Reverse(sort.IntSlice(sequence)))
	return sequence[0], nil
}