LICENSEファイルの中身を一つにまとめてくれるEditor拡張
自分のQiita転載です
GitHub等からAssetsを持ってきて、アプリをリリースする時などにLICENSEファイルをまとめるのがめんどくさいなぁと思ったりしませんか?僕は数回やってめんどくさいと思いました。
なのでEditor拡張でAssets配下の"LICENSE"ファイルを検索して"Assets/USE_ASSETS_LICENSE"にまとめるようにしてみました。
これで、ライセンス表記をする際に"Assets/USE_ASSETS_LICENSE"からtextを読んでもいいですし、開いてコピペでもいいと思います。良しなに使っていただければと思います。
public static class CreateUseLicenseFile { private const string USE_LICENSE_FILE = "use_assets_license_file"; private const string fileName = "USE_ASSETS_LICENSE"; [MenuItem("Assets/Create/Used LICENSE File")] static void CreateUsedLICENSEFile() { System.Text.StringBuilder builder = new System.Text.StringBuilder(); string[] files; string assetPath = Application.dataPath + "/" + fileName; AssetDatabase.MoveAssetToTrash(assetPath); files = AssetDatabase.FindAssets("LICENSE"); foreach (var guid in files) { if (Path.GetFileName((AssetDatabase.GUIDToAssetPath(guid))) == "CreateUseLicenseFile.cs" || Path.GetFileName((AssetDatabase.GUIDToAssetPath(guid))) == fileName) continue; var path = AssetDatabase.GUIDToAssetPath(guid).Substring("Assets".Length); StreamReader reader = new StreamReader(Application.dataPath + path); builder.Append(reader.ReadToEnd()).AppendLine(); reader.Close(); } string text = builder.ToString(); if (AssetDatabase.LoadAssetAtPath(assetPath, typeof(UnityEngine.Object)) != null && EditorPrefs.GetInt(USE_LICENSE_FILE, 0) == text.GetHashCode()) return; System.IO.File.WriteAllText(assetPath, text); EditorPrefs.SetInt(USE_LICENSE_FILE, text.GetHashCode()); AssetDatabase.Refresh(ImportAssetOptions.ImportRecursive); } }
こういう拡張があったら二番煎じですみません。。。
最近、作り始めたフレームワークの中に入れています。もし、ご興味のある方は是非。 https://github.com/MizoTake/MomijiFramework/blob/master/Editor/CreateUseLicenseFile.cs