mirror of
https://github.com/tonytins/staggerpost.git
synced 2025-03-25 02:39:12 +00:00
- Removed new line when choosing a topic - Renamed newscycle.json to example.json in config - Changed path to "/" in config - If "/" is present in config, return the absolute current directory
87 lines
2.6 KiB
C#
87 lines
2.6 KiB
C#
// I hereby waive this project under the public domain - see UNLICENSE for details.
|
|
namespace StaggerPost;
|
|
|
|
/// <summary>
|
|
/// Provides debug-only console output methods.
|
|
/// These methods are only executed when the application is compiled in DEBUG mode.
|
|
/// </summary>
|
|
internal static class Tracer
|
|
{
|
|
const string LOG = "[LOG]:";
|
|
|
|
/// <summary>
|
|
/// Writes a line of text to the console, but only when in DEBUG mode.
|
|
/// </summary>
|
|
/// <param name="content">The text to write to the console.</param>
|
|
[Conditional("DEBUG")]
|
|
internal static void LogLine(string content) => Console.WriteLine($"{LOG} {content}");
|
|
|
|
/// <summary>
|
|
/// Writes text to the console without a newline, but only when in DEBUG mode.
|
|
/// </summary>
|
|
/// <param name="content">The text to write to the console.</param>
|
|
[Conditional("DEBUG")]
|
|
internal static void Log(string content) => Console.Write($"{LOG} {content}");
|
|
|
|
/// <summary>
|
|
/// Writes multiple lines of text to the console, but only when in DEBUG mode.
|
|
/// </summary>
|
|
/// <param name="contents">A collection of text lines to write to the console.</param>
|
|
[Conditional("DEBUG")]
|
|
internal static void LogLine(IEnumerable<string> contents)
|
|
{
|
|
foreach (var content in contents)
|
|
{
|
|
Console.WriteLine($"{LOG} {content}");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Writes multiple text entries to the console without newlines, but only when in DEBUG mode.
|
|
/// </summary>
|
|
/// <param name="contents">A collection of text entries to write to the console.</param>
|
|
[Conditional("DEBUG")]
|
|
internal static void Log(IEnumerable<string> contents)
|
|
{
|
|
foreach (var content in contents)
|
|
{
|
|
Console.Write($"{LOG} {content}");
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the current working directory in DEBUG mode or the application's base directory in release mode.
|
|
/// </summary>
|
|
internal static string AppDirectory
|
|
{
|
|
get
|
|
{
|
|
#if DEBUG
|
|
return Directory.GetCurrentDirectory();
|
|
#else
|
|
return AppDomain.CurrentDomain.BaseDirectory;
|
|
#endif
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Determines the appropriate output directory based on the given directory path.
|
|
/// In DEBUG mode, it always returns the current working directory.
|
|
/// In release mode, it returns the provided directory unless it contains a '/', in which case it defaults to the current directory.
|
|
/// </summary>
|
|
/// <param name="dir">The directory path to evaluate.</param>
|
|
/// <returns>The resolved output directory as a string.</returns>
|
|
internal static string OutputDirectory(string dir)
|
|
{
|
|
var curDir = Directory.GetCurrentDirectory();
|
|
|
|
#if DEBUG
|
|
return curDir;
|
|
#else
|
|
if (dir.Contains("/"))
|
|
return curDir;
|
|
|
|
return dir;
|
|
#endif
|
|
}
|
|
}
|