aboutsummaryrefslogtreecommitdiff
path: root/cmd/show-object/resolve.go
blob: cd1c6b78d5fef3b377eeda074b400b73afcb9bed (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 "lindenii.org/go/furgit/object/id"
	"lindenii.org/go/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.RefStore().ResolveToDetached(input)
	if err != nil {
		return objectid.ObjectID{}, err
	}

	return resolved.ID, nil
}