File: workspaceProcessor.go

package info (click to toggle)
golang-github-azure-azure-sdk-for-go 68.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 556,256 kB
  • sloc: javascript: 196; sh: 96; makefile: 7
file content (63 lines) | stat: -rw-r--r-- 1,730 bytes parent folder | download | duplicates (3)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.

package common

import (
	"fmt"
	"path/filepath"
	"regexp"

	"github.com/Azure/azure-sdk-for-go/eng/tools/generator/repo"
)

var (
	commitIDRegex = regexp.MustCompile("^[0-9a-f]{40}$")
)

func GetSDKRepo(sdkRepoParam, sdkRepoURL string) (repo.SDKRepository, error) {
	var err error
	var sdkRepo repo.SDKRepository
	// create sdk git repo ref
	if commitIDRegex.Match([]byte(sdkRepoParam)) {
		sdkRepo, err = repo.CloneSDKRepository(sdkRepoURL, sdkRepoParam)
		if err != nil {
			return nil, fmt.Errorf("failed to get sdk repo: %+v", err)
		}
	} else {
		path, err := filepath.Abs(sdkRepoParam)
		if err != nil {
			return nil, fmt.Errorf("failed to get the directory of azure-sdk-for-go: %v", err)
		}

		sdkRepo, err = repo.OpenSDKRepository(path)
		if err != nil {
			return nil, fmt.Errorf("failed to get sdk repo: %+v", err)
		}
	}
	return sdkRepo, nil
}

func GetSpecCommit(specRepoParam string) (string, error) {
	specCommitHash := ""
	// create spec git repo ref
	if commitIDRegex.Match([]byte(specRepoParam)) {
		specCommitHash = specRepoParam
	} else {
		path, err := filepath.Abs(specRepoParam)
		if err != nil {
			return "", fmt.Errorf("failed to get the directory of azure-rest-api-specs: %v", err)
		}
		specRepo, err := repo.OpenSpecRepository(path)
		if err != nil {
			return "", fmt.Errorf("failed to get spec repo: %+v", err)
		}
		specHeader, err := specRepo.Head()
		if err != nil {
			return "", fmt.Errorf("failed to get HEAD ref of azure-rest-api-specs: %+v", err)
		}
		specCommitHash = specHeader.Hash().String()
	}

	return specCommitHash, nil
}