This repository has been archived on 2025-09-26. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Password-Manager-Legacy/CLI/Program.cs

82 lines
2.1 KiB
C#
Raw Normal View History

2023-04-16 19:54:11 +02:00
using Common;
namespace CLI;
2023-04-15 19:04:05 +02:00
class Program
{
static string BINARY_NAME = "pass";
static int Main(string[] args)
2023-04-15 19:04:05 +02:00
{
2023-04-16 21:02:07 +02:00
ConfigFileManager.ExceptionOccured += (e) => ErrorOccured(e);
ConfigFileManager.Init();
if (args.Length == 0)
{
ListPasswords();
return 0;
}
else
{
switch (args[0])
{
case "help":
HelpMessage();
break;
case "list":
if (ListPasswords() == 1)
{
return 1;
}
break;
default:
HelpMessage();
break;
}
}
return 0;
}
static int ListPasswords()
{
2023-04-16 21:03:44 +02:00
DirectoryInfo d;
FileInfo[] files = new FileInfo[0];
try
{
//since this file is already dependent on the Common namespace, we don't need events to mitigate this; better off asking ConfigFileManager for the path directly
d = new DirectoryInfo(ConfigFileManager.GetPath());
files = d.GetFiles("*.gpg");
}
catch (ArgumentNullException e)
{
ErrorOccured(e, "Error while getting password files");
return 1;
}
2023-04-16 21:03:44 +02:00
foreach (FileInfo f in files)
{
Console.WriteLine($"\t{f.Name}");
}
return 0;
}
2023-04-16 21:03:56 +02:00
static void ErrorOccured(Exception e, string errorName = "Error")
2023-04-16 20:46:14 +02:00
{
2023-04-16 21:03:56 +02:00
Console.WriteLine($"{errorName}: {e}\nMore details:\n{e.ToString()}");
2023-04-16 20:46:14 +02:00
}
2023-04-16 20:46:24 +02:00
static void HelpMessage()
{
Console.WriteLine($"Usage: {BINARY_NAME} <arguments> [optional arguments]");
Console.WriteLine("\nArguments:");
Console.WriteLine("\t- list:\t\t\tlist all passwords; this is the default action");
Console.WriteLine("\t- <password>:\t\tdecrypt password and copy it to clipboard");
Console.WriteLine($"\t- new <name>:\t\tgenerate password\n\t\t[length]:\tthe length of the password, default is {PasswordGenerator.DEFAULT_LENGTH}\n\t\t[true|false]:\twhether the password should include symbols, default is true");
Console.WriteLine($"\t- rm <password>:\tdelete password");
Console.WriteLine($"\t- insert <password>:\tinstead of generating the password, you enter its contents");
Console.WriteLine($"\t- find <search query>:\tlist password that match your query");
Console.WriteLine($"\t- edit <password>:\tedit the contents of an existing password");
2023-04-15 19:04:05 +02:00
}
}