teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2018/09/04 05:28

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -1,1 +1,49 @@
1
- 試さず書きますが、`exit 1` でどうですか?
1
+ 試さず書きますが、`exit 1` でどうですか?
2
+
3
+ ###追記
4
+
5
+ ツールを作った方が早そうなので作りました。
6
+
7
+ ```C#
8
+ using System;
9
+ using System.Diagnostics;
10
+ using System.IO;
11
+ using System.Text;
12
+
13
+ namespace ConsoleApp1
14
+ {
15
+ class Program
16
+ {
17
+ static int Main(string[] args)
18
+ {
19
+ if (args.Length > 0)
20
+ {
21
+ Directory.SetCurrentDirectory(args[0]);
22
+ }
23
+ var info = new ProcessStartInfo("git", "branch")
24
+ {
25
+ RedirectStandardOutput = true,
26
+ StandardOutputEncoding = Encoding.UTF8,
27
+ UseShellExecute = false
28
+ };
29
+ var process = Process.Start(info);
30
+ var output = process.StandardOutput.ReadLine();
31
+ process.WaitForExit();
32
+ if (output != "* master")
33
+ {
34
+ Console.Error.WriteLine("master ではありません");
35
+ return 1;
36
+ }
37
+ return 0;
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ これをコンパイルして ConsoleApp1.exe を作ります。
44
+ ビルド前イベントに `"ConsoleApp1.exe" "$(SolutionDir)."` と書きます。
45
+ 以上です。
46
+ 名前は適当に変更し、フルパスで記述してください。
47
+
48
+ なお、引数を `"$(SolutionDir)"` にすると失敗しました。
49
+ 面倒なので最後に `.` をつけることで対応していますが、気になるなら直してください。