aboutsummaryrefslogtreecommitdiff
path: root/network/protocol/v0v1/server/helpers.go
blob: 9a62f714fec38ddb1cd6600ea6220604c04d012b (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
package server

import (
	"slices"
)

func sortAdvertisedRefs(refs []AdvertisedRef) []AdvertisedRef {
	out := append([]AdvertisedRef(nil), refs...)
	slices.SortFunc(out, func(left, right AdvertisedRef) int {
		if left.Name == "HEAD" && right.Name != "HEAD" {
			return -1
		}

		if left.Name != "HEAD" && right.Name == "HEAD" {
			return 1
		}

		switch {
		case left.Name < right.Name:
			return -1
		case left.Name > right.Name:
			return 1
		default:
			return 0
		}
	})

	return out
}