public static int ListCommand(ListCommandOptions options) { AssemblyDefinition assemblyDef = AssemblyDefinition.ReadAssembly(options.Assembly); if (options.Verbose) { Console.Error.WriteLine("Loaded assembly " + assemblyDef); } Collection <Resource> resources = assemblyDef.MainModule.Resources; Console.WriteLine("\nResource Name"); Console.WriteLine("-------------"); foreach (EmbeddedResource resource in resources) { Console.WriteLine($"{resource.Name}"); } Console.WriteLine(); return(0); }
private Task ListCommand(ListCommandOptions options) { FolderNode node = null; if (!string.IsNullOrEmpty(_currentFolder)) { _vault.TryGetFolder(_currentFolder, out node); } if (node == null) { node = _vault.Root; } if (options.Details) { if (node.Children.Count > 0) { var tab = new Tabulate(2) { DumpRowNo = true }; tab.AddHeader(new string[] { "Folder UID", "Name" }); foreach (var uid in node.Children) { if (_vault.TryGetFolder(uid, out FolderNode f)) { tab.AddRow(new string[] { f.FolderUid, f.Name }); } } tab.Sort(1); tab.Dump(); } if (node.Records.Count > 0) { var tab = new Tabulate(4) { DumpRowNo = true }; tab.AddHeader(new string[] { "Record UID", "Title", "Login", "URL" }); foreach (var uid in node.Records) { if (_vault.TryGetRecord(uid, out PasswordRecord r)) { tab.AddRow(new string[] { r.Uid, r.Title, r.Login, r.Link }); } } tab.Sort(1); tab.Dump(); } } else { List <string> names = new List <string>(); foreach (var uid in node.Children) { if (_vault.TryGetFolder(uid, out FolderNode subnode)) { names.Add(subnode.Name + "/"); } } names.Sort(StringComparer.InvariantCultureIgnoreCase); int len = names.Count; foreach (var uid in node.Records) { if (_vault.TryGetRecord(uid, out PasswordRecord record)) { names.Add(record.Title); } } names.Sort(len, names.Count - len, StringComparer.InvariantCultureIgnoreCase); if (names.Count > 0) { len = names.Select(x => x.Length).Max(); if (len < 16) { len = 16; } len += 2; int columns = Console.BufferWidth / len; if (columns < 1) { columns = 1; } int columnWidth = Console.BufferWidth / columns; int colNo = 0; for (int i = 0; i < names.Count; i++) { Console.Write(names[i].PadRight(columnWidth - 1)); colNo++; if (colNo >= columns) { Console.WriteLine(); colNo = 0; } } } } return(Task.FromResult(true)); }