public const string COMMIT_LOG_TAG        = "#COMMIT_LOG#";                // コミットログ置換対象のタグ

        //================================================================================
        // 関数(static)
        //================================================================================
        /// <summary>
        /// コミットハッシュを管理するスクリプトを生成します
        /// </summary>
        /// <example>
        /// <code>
        /// var outputPath = "Assets/Scripts/GitCommitHash.cs";
        ///
        /// var option = new CommitLogOption
        ///	(
        ///		count: 10,
        ///		isNoMerges: false,
        ///		format: "%h %cd %cn %s"
        /// );
        ///
        /// var template = $@"public static class GitCommitHash
        /// {{
        ///     public const string COMMIT_HASH       = ""{GitCommitHashCodeGenerator.COMMIT_HASH_TAG}"";
        ///     public const string SHORT_COMMIT_HASH = ""{GitCommitHashCodeGenerator.SHORT_COMMIT_HASH_TAG}"";
        ///     public const string COMMIT_LOG_TAG    = @""{GitCommitHashCodeGenerator.COMMIT_LOG_TAG}"";
        /// }}";
        ///
        /// GitCommitHashCodeGenerator.Generate( outputPath, template, option );
        /// </code>
        /// </example>
        public static void Generate
        (
            string outputPath,
            string template,
            CommitLogOption commitLogOption
        )
        {
            // 出力先のフォルダが存在しない場合は作成します
            var dir = Path.GetDirectoryName(outputPath);

            if (!Directory.Exists(dir))
            {
                Directory.CreateDirectory(dir);
            }

            // Git のコミットハッシュを読み込みます
            var commitHash      = GitCommitHashLoader.LoadCommitHash();
            var shortCommitHash = GitCommitHashLoader.LoadShortCommitHash();
            var commitLog       = GitCommitHashLoader.LoadCommitLog(commitLogOption);

            // コミットハッシュを埋め込んだスクリプトの文字列を作成します
            var code = template;

            code = code.Replace(COMMIT_HASH_TAG, commitHash);
            code = code.Replace(SHORT_COMMIT_HASH_TAG, shortCommitHash);
            code = code.Replace(COMMIT_LOG_TAG, commitLog);

            // 作成した文字列をスクリプトとして保存します
            File.WriteAllText(outputPath, code);
            AssetDatabase.Refresh();
        }
예제 #2
0
        private static void LogCommitLog()
        {
            var option = new CommitLogOption
                         (
                count: 10,
                isNoMerges: false,
                format: "%h %cd %cn %s"
                         );

            Debug.Log($"[UniGitCommitHash]\n{GitCommitHashLoader.LoadCommitLog( option )}");
        }
예제 #3
0
 private static void LogShortCommitHash()
 {
     Debug.Log($"[UniGitCommitHash] {GitCommitHashLoader.LoadShortCommitHash()}");
 }