From 120509f0aad0e945d8e0fc90a822fa904fb70b68 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 6 Mar 2026 01:48:44 +0800 Subject: repository: Refactor --- repository/algorithm.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 repository/algorithm.go (limited to 'repository/algorithm.go') diff --git a/repository/algorithm.go b/repository/algorithm.go new file mode 100644 index 00000000..22326cbd --- /dev/null +++ b/repository/algorithm.go @@ -0,0 +1,27 @@ +package repository + +import ( + "fmt" + + "codeberg.org/lindenii/furgit/config" + "codeberg.org/lindenii/furgit/objectid" +) + +func detectObjectAlgorithm(cfg *config.Config) (objectid.Algorithm, error) { + algoName := cfg.Lookup("extensions", "", "objectformat").Value + if algoName == "" { + algoName = objectid.AlgorithmSHA1.String() + } + + algo, ok := objectid.ParseAlgorithm(algoName) + if !ok { + return objectid.AlgorithmUnknown, fmt.Errorf("repository: unsupported object format %q", algoName) + } + + return algo, nil +} + +// Algorithm returns the repository object ID algorithm. +func (repo *Repository) Algorithm() objectid.Algorithm { + return repo.algo +} -- cgit v1.3.1-10-gc9f91