aboutsummaryrefslogtreecommitdiff
path: root/cmd/show-object/resolve.go
blob: eaf2c1023cf9c59aaf16c74adc4bc768d9a2c198 (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
package main

import (
	"strings"

	objectid "codeberg.org/lindenii/furgit/object/id"
	"codeberg.org/lindenii/furgit/repository"
)

func resolveInput(repo *repository.Repository, input string) (objectid.ObjectID, error) {
	id, err := objectid.ParseHex(repo.Algorithm(), strings.TrimSpace(input))
	if err == nil {
		return id, nil
	}

	resolved, err := repo.Refs().ResolveToDetached(input)
	if err != nil {
		return objectid.ObjectID{}, err
	}

	return resolved.ID, nil
}