-
Notifications
You must be signed in to change notification settings - Fork 111
ライセンス通知を追加するツールを作成 #236
base: feature/license_tools
Are you sure you want to change the base?
ライセンス通知を追加するツールを作成 #236
Conversation
C# インタラクティブではなく |
Linux 向けに |
実際に https://github.com/Takym/cocoa/tree/tools/header_applied |
非 Windows 環境では #237 を使用する事にして、こちらのPRでは Windows 限定で対応する事とします。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
コードの説明を書きました。ご確認宜しくお願いします。
Tools/AddLicenseHeader.csx
Outdated
var result = AddHeader(data, ext switch { | ||
// 拡張子毎にライセンス通知の書式を設定する。 | ||
".cs" => CreateCStyleHeader, | ||
".csx" => CreateCStyleHeader, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ここでファイル毎の書式を設定しています。
Tools/AddLicenseHeader.csx
Outdated
public const string XML_HEADER_1 = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"; | ||
public const string XML_HEADER_2 = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; | ||
public const string SH_HEADER = "#!/bin/bash"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ライセンス通知より前に記述する必要のあるヘッダーの定義です。
Tools/AddLicenseHeader.csx
Outdated
const string HEADER_LINE_1 = "This Source Code Form is subject to the terms of the Mozilla Public"; | ||
const string HEADER_LINE_2 = "License, v. 2.0. If a copy of the MPL was not distributed with this"; | ||
const string HEADER_LINE_3 = "file, You can obtain one at https://mozilla.org/MPL/2.0/."; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ライセンス通知の定義です。
Tools/AddLicenseHeader.csx
Outdated
/// <summary>C言語のブロックコメントと同じ書式で記述できる言語用のライセンス通知を作成する</summary> | ||
public static string CreateCStyleHeader(string line1, string line2, string line3) | ||
{ | ||
return "/* " + line1 + "\n * " + line2 + "\n * " + line3 + " */\n"; | ||
} | ||
|
||
/// <summary>XMLのコメントと同じ書式で記述できる言語用のライセンス通知を作成する</summary> | ||
public static string CreateXMLStyleHeader(string line1, string line2, string line3) | ||
{ | ||
return XML_HEADER_1 + "\n<!-- " + line1 + "\n - " + line2 + "\n - " + line3 + " -->\n"; | ||
} | ||
|
||
/// <summary>XMLのコメントと同じ書式で記述できる言語用のライセンス通知を作成する</summary> | ||
/// <remarks>XML宣言とライセンス通知の間に空行を挿入する</remarks> | ||
public static string CreateXMLStyleHeaderWithAlign(string line1, string line2, string line3) | ||
{ | ||
return XML_HEADER_2 + "\n\n\n<!-- " + line1 + "\n - " + line2 + "\n - " + line3 + " -->\n"; | ||
} | ||
|
||
/// <summary>バッチファイル用のライセンス通知を作成する</summary> | ||
public static string CreateBatchFileStyleHeader(string line1, string line2, string line3) | ||
{ | ||
return "@REM " + line1 + "\n@REM " + line2 + "\n@REM " + line3 + "\n"; | ||
} | ||
|
||
/// <summary>シェルスクリプト用のライセンス通知を作成する</summary> | ||
/// <remarks><c>Shebang</c> を挿入する</remarks> | ||
public static string CreateShellScriptStyleHeaderWithShebang(string line1, string line2, string line3) | ||
{ | ||
return SH_HEADER + "\n" + CreateShellScriptStyleHeader(line1, line2, line3); | ||
} | ||
|
||
/// <summary>シェルスクリプトのコメントと同じ書式で記述できる言語用のライセンス通知を作成する</summary> | ||
public static string CreateShellScriptStyleHeader(string line1, string line2, string line3) | ||
{ | ||
return "# " + line1 + "\n# " + line2 + "\n# " + line3 + "\n"; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ファイル毎に合わせたライセンス通知を生成しています。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
40〜53行目から参照されています。
Tools/AddLicenseHeader.csx
Outdated
/// <summary>除外設定</summary> | ||
public static bool Ignore(string file) | ||
{ | ||
return file.EndsWith(".designer.cs") | ||
|| file.EndsWith(".Designer.cs") | ||
|| file.EndsWith(".feature.cs") | ||
|| file.Contains("Xamarin.ExposureNotification") | ||
|| file.Contains("bin") | ||
|| file.Contains("Bin") | ||
|| file.Contains("obj") | ||
|| file.Contains("Obj") | ||
|| file.Contains(".github"); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
除外するファイルを指定しています。
…ader/AddLicenseHeader.csx
Issue 番号
目的
現段階では C# ソースファイルにのみ対応しています。→ リポジトリ内の多くのファイルに対応しています。破壊的変更をもたらしますか
Pull Request の種類
検証方法
コードの入手
コードの検証
確認事項
dotnet-script
をインストールする必要があります。現在は Windows でのみ実行できます。→ Linux にも対応しました。Internal IDs: