Skip to content

Commit

Permalink
DisplayWorkingDirectoryInPrompt ConfigItem added with a default value…
Browse files Browse the repository at this point in the history
… of false;
  • Loading branch information
sLill committed Nov 28, 2023
1 parent 304364e commit 5b0c787
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 17 deletions.
6 changes: 6 additions & 0 deletions WindowsGrep/WindowsGrep.Common/Utils/WindowsUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ public static class WindowsUtils
#endregion Fields..

#region Methods..
public static string GetCompressedPath(string fullPath)
{
var directories = fullPath.Split(Path.DirectorySeparatorChar);
return directories.Length > 1 ? @"..\" + directories[directories.Length - 1] : fullPath;
}

public static async Task<List<string>> GetFilesAsync(string path, bool recursive, CancellationToken cancellationToken, FileAttributes fileAttributesToSkip = default)
{
var enumerationOptions = new EnumerationOptions() { ReturnSpecialDirectories = true, AttributesToSkip = fileAttributesToSkip };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,12 +69,14 @@ private void LoadConfiguration()
else
LoadDefaultConfiguration();

SaveConfiguration();
}
catch (Exception ex)
{
Console.WriteLine($"Could not load configuration - {ex.Message}");
LoadDefaultConfiguration();
}

SaveConfiguration();
}

public void SaveConfiguration()
Expand Down
4 changes: 2 additions & 2 deletions WindowsGrep/WindowsGrep.Configuration/Enums/ConfigItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public enum ConfigItem
[DefaultValue(true)]
IncludeHiddenFiles,

[DefaultValue(true)]
CompressPath
[DefaultValue(false)]
DisplayWorkingDirectoryInPrompt,
}
}
18 changes: 18 additions & 0 deletions WindowsGrep/WindowsGrep.Core/Utils/ConsoleUtils.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using System.Data;
using System.Text.RegularExpressions;
using WindowsGrep.Common;
using WindowsGrep.Configuration;

namespace WindowsGrep.Core
{
Expand Down Expand Up @@ -113,6 +114,23 @@ public static void PublishReadMe()
Console.WriteLine(readMe + Environment.NewLine);
}

public static void PublishPrompt()
{
string prompt = string.Empty;

bool displayWorkingDirectoryInPrompt = (bool)ConfigurationManager.Instance.ConfigItemCollection[ConfigItem.DisplayWorkingDirectoryInPrompt];
if (displayWorkingDirectoryInPrompt)
{
string currentDirectory = Directory.GetCurrentDirectory();
currentDirectory = WindowsUtils.GetCompressedPath(currentDirectory);
prompt = $"{currentDirectory}> ";
}
else
prompt = "$ ";

Console.Write(prompt);
}

public static void WriteConsoleItem(ConsoleItem consoleItem)
{
Console.BackgroundColor = consoleItem.BackgroundColor;
Expand Down
16 changes: 2 additions & 14 deletions WindowsGrep/WindowsGrep/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,7 @@ private static async Task Main(string[] args)
string command = string.Empty;
if (args.Length == 0)
{
// Prompt
bool compressPath = (bool)ConfigurationManager.Instance.ConfigItemCollection[ConfigItem.CompressPath];
string currentDirectory = Directory.GetCurrentDirectory();
currentDirectory = compressPath ? GetCompressedPath(currentDirectory) : currentDirectory;

Console.Write($"{currentDirectory}> ");

ConsoleUtils.PublishPrompt();
command = Console.ReadLine();
}
else
Expand Down Expand Up @@ -93,13 +87,7 @@ private static void Initialize(string[] args)
// Override the default behavior for the Ctrl+C shortcut if the application was not ran from the command line
if (Environment.UserInteractive)
Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_OnCancelKeyPress);
}

private static string GetCompressedPath(string fullPath)
{
var directories = fullPath.Split(Path.DirectorySeparatorChar);
return directories.Length > 1 ? @"..\" + directories[directories.Length - 1] : fullPath;
}
}
#endregion Methods..
}
}

0 comments on commit 5b0c787

Please sign in to comment.