5
5
6
6
namespace SourceGit . Commands
7
7
{
8
- public class SharedIssueTracker : Command
8
+ public class IssueTracker : Command
9
9
{
10
- public SharedIssueTracker ( string repo )
10
+ public IssueTracker ( string repo , string storage )
11
11
{
12
12
WorkingDirectory = repo ;
13
13
Context = repo ;
14
- _file = $ " { repo } /.issuetracker" ;
14
+ _storage = storage ;
15
15
}
16
16
17
- public async Task < List < Models . IssueTrackerRule > > ReadAllAsync ( )
17
+ public async Task < List < Models . IssueTracker > > ReadAllAsync ( bool isShared )
18
18
{
19
- if ( ! File . Exists ( _file ) )
19
+ if ( ! File . Exists ( _storage ) )
20
20
return [ ] ;
21
21
22
- Args = $ "config -f { _file . Quoted ( ) } -l";
22
+ Args = $ "config -f { _storage . Quoted ( ) } -l";
23
23
24
24
var output = await ReadToEndAsync ( ) . ConfigureAwait ( false ) ;
25
- var rs = new List < Models . IssueTrackerRule > ( ) ;
25
+ var rs = new List < Models . IssueTracker > ( ) ;
26
26
if ( output . IsSuccess )
27
27
{
28
28
var lines = output . StdOut . Split ( [ '\r ' , '\n ' ] , StringSplitOptions . RemoveEmptyEntries ) ;
@@ -43,52 +43,52 @@ public SharedIssueTracker(string repo)
43
43
var prefixLen = "issuetracker." . Length ;
44
44
var suffixLen = ".regex" . Length ;
45
45
var ruleName = key . Substring ( prefixLen , key . Length - prefixLen - suffixLen ) ;
46
- FindOrAdd ( rs , ruleName ) . RegexString = value ;
46
+ FindOrAdd ( rs , ruleName , isShared ) . RegexString = value ;
47
47
}
48
48
else if ( key . EndsWith ( ".url" , StringComparison . Ordinal ) )
49
49
{
50
50
var prefixLen = "issuetracker." . Length ;
51
51
var suffixLen = ".url" . Length ;
52
52
var ruleName = key . Substring ( prefixLen , key . Length - prefixLen - suffixLen ) ;
53
- FindOrAdd ( rs , ruleName ) . URLTemplate = value ;
53
+ FindOrAdd ( rs , ruleName , isShared ) . URLTemplate = value ;
54
54
}
55
55
}
56
56
}
57
57
58
58
return rs ;
59
59
}
60
60
61
- public async Task < bool > AddAsync ( Models . IssueTrackerRule rule )
61
+ public async Task < bool > AddAsync ( Models . IssueTracker rule )
62
62
{
63
- Args = $ "config -f { _file . Quoted ( ) } issuetracker.{ rule . Name . Quoted ( ) } .regex { rule . RegexString . Quoted ( ) } ";
63
+ Args = $ "config -f { _storage . Quoted ( ) } issuetracker.{ rule . Name . Quoted ( ) } .regex { rule . RegexString . Quoted ( ) } ";
64
64
65
65
var succ = await ExecAsync ( ) . ConfigureAwait ( false ) ;
66
66
if ( succ )
67
67
{
68
- Args = $ "config -f { _file . Quoted ( ) } issuetracker.{ rule . Name . Quoted ( ) } .url { rule . URLTemplate . Quoted ( ) } ";
68
+ Args = $ "config -f { _storage . Quoted ( ) } issuetracker.{ rule . Name . Quoted ( ) } .url { rule . URLTemplate . Quoted ( ) } ";
69
69
return await ExecAsync ( ) . ConfigureAwait ( false ) ;
70
70
}
71
71
72
72
return false ;
73
73
}
74
74
75
- public async Task < bool > RemoveAsync ( Models . IssueTrackerRule rule )
75
+ public async Task < bool > RemoveAsync ( Models . IssueTracker rule )
76
76
{
77
- Args = $ "config -f { _file . Quoted ( ) } --remove-section issuetracker.{ rule . Name . Quoted ( ) } ";
77
+ Args = $ "config -f { _storage . Quoted ( ) } --remove-section issuetracker.{ rule . Name . Quoted ( ) } ";
78
78
return await ExecAsync ( ) . ConfigureAwait ( false ) ;
79
79
}
80
80
81
- private Models . IssueTrackerRule FindOrAdd ( List < Models . IssueTrackerRule > rules , string ruleName )
81
+ private Models . IssueTracker FindOrAdd ( List < Models . IssueTracker > rules , string ruleName , bool isShared )
82
82
{
83
83
var rule = rules . Find ( x => x . Name . Equals ( ruleName , StringComparison . Ordinal ) ) ;
84
84
if ( rule != null )
85
85
return rule ;
86
86
87
- rule = new Models . IssueTrackerRule ( ) { IsShared = true , Name = ruleName } ;
87
+ rule = new Models . IssueTracker ( ) { IsShared = isShared , Name = ruleName } ;
88
88
rules . Add ( rule ) ;
89
89
return rule ;
90
90
}
91
91
92
- private readonly string _file ;
92
+ private readonly string _storage ;
93
93
}
94
94
}
0 commit comments