aboutsummaryrefslogtreecommitdiff
path: root/receivepack/version.go
blob: 42c5b38b03b48bdb283361845c1fe16c7b06aa0c (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package receivepack

import (
	"strings"

	common "codeberg.org/lindenii/furgit/protocol/v0v1/server"
)

func parseVersion(gitProtocol string) common.Version {
	if gitProtocol == "" {
		return common.Version0
	}

	var highestRequested uint8

	for field := range strings.SplitSeq(gitProtocol, ":") {
		switch field {
		case "version=0":
		case "version=1":
			if highestRequested < 1 {
				highestRequested = 1
			}
		case "version=2":
			if highestRequested < 2 {
				highestRequested = 2
			}
		}
	}

	if highestRequested == 1 {
		return common.Version1
	}

	return common.Version0
}