@@ -11,15 +11,25 @@ public IssueTracker(string repo, string storage)
1111 {
1212 WorkingDirectory = repo ;
1313 Context = repo ;
14- _storage = storage ;
14+
15+ if ( string . IsNullOrEmpty ( storage ) )
16+ {
17+ _isStorageFileExists = true ;
18+ _baseArg = "config --local" ;
19+ }
20+ else
21+ {
22+ _isStorageFileExists = File . Exists ( storage ) ;
23+ _baseArg = $ "config -f { storage . Quoted ( ) } ";
24+ }
1525 }
1626
1727 public async Task ReadAllAsync ( List < Models . IssueTracker > outs , bool isShared )
1828 {
19- if ( ! File . Exists ( _storage ) )
29+ if ( ! _isStorageFileExists )
2030 return ;
2131
22- Args = $ "config -f { _storage . Quoted ( ) } -l";
32+ Args = $ "{ _baseArg } -l";
2333
2434 var rs = await ReadToEndAsync ( ) . ConfigureAwait ( false ) ;
2535 if ( rs . IsSuccess )
@@ -57,12 +67,12 @@ public async Task ReadAllAsync(List<Models.IssueTracker> outs, bool isShared)
5767
5868 public async Task < bool > AddAsync ( Models . IssueTracker rule )
5969 {
60- Args = $ "config -f { _storage . Quoted ( ) } issuetracker.{ rule . Name . Quoted ( ) } .regex { rule . RegexString . Quoted ( ) } ";
70+ Args = $ "{ _baseArg } issuetracker.{ rule . Name . Quoted ( ) } .regex { rule . RegexString . Quoted ( ) } ";
6171
6272 var succ = await ExecAsync ( ) . ConfigureAwait ( false ) ;
6373 if ( succ )
6474 {
65- Args = $ "config -f { _storage . Quoted ( ) } issuetracker.{ rule . Name . Quoted ( ) } .url { rule . URLTemplate . Quoted ( ) } ";
75+ Args = $ "{ _baseArg } issuetracker.{ rule . Name . Quoted ( ) } .url { rule . URLTemplate . Quoted ( ) } ";
6676 return await ExecAsync ( ) . ConfigureAwait ( false ) ;
6777 }
6878
@@ -71,10 +81,10 @@ public async Task<bool> AddAsync(Models.IssueTracker rule)
7181
7282 public async Task < bool > RemoveAsync ( Models . IssueTracker rule )
7383 {
74- if ( ! File . Exists ( _storage ) )
84+ if ( ! _isStorageFileExists )
7585 return true ;
7686
77- Args = $ "config -f { _storage . Quoted ( ) } --remove-section issuetracker.{ rule . Name . Quoted ( ) } ";
87+ Args = $ "{ _baseArg } --remove-section issuetracker.{ rule . Name . Quoted ( ) } ";
7888 return await ExecAsync ( ) . ConfigureAwait ( false ) ;
7989 }
8090
@@ -89,6 +99,7 @@ private Models.IssueTracker FindOrAdd(List<Models.IssueTracker> rules, string ru
8999 return rule ;
90100 }
91101
92- private readonly string _storage ;
102+ private readonly bool _isStorageFileExists ;
103+ private readonly string _baseArg ;
93104 }
94105}
0 commit comments