forked from dotnet/sourcelink
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRepositoryTask.cs
29 lines (24 loc) · 962 Bytes
/
RepositoryTask.cs
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
// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Diagnostics.CodeAnalysis;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using Microsoft.TeamFoundation.VersionControl.Client;
namespace Microsoft.Build.Tasks.Tfvc
{
public abstract class RepositoryTask : Task
{
[Required, NotNull]
public string? WorkspaceDirectory { get; set; }
protected abstract bool Execute(WorkspaceInfo workspaceInfo);
public sealed override bool Execute()
{
var workspaceInfo = Workstation.Current.GetLocalWorkspaceInfo(WorkspaceDirectory);
if (workspaceInfo == null)
{
Log.LogError($"Invalid repository id: {WorkspaceDirectory}");
return false;
}
return Execute(workspaceInfo);
}
}
}