chore: deploy initial linqpad queries
This commit is contained in:
@@ -0,0 +1,128 @@
|
||||
<Query Kind="Program">
|
||||
<Reference><ProgramFilesX64>\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins\Diagnostics\Newtonsoft.Json.dll</Reference>
|
||||
<NuGetReference>Amazon.Lambda.S3Events</NuGetReference>
|
||||
<NuGetReference>AWSSDK.Core</NuGetReference>
|
||||
<NuGetReference>AWSSDK.S3</NuGetReference>
|
||||
<Namespace>Amazon</Namespace>
|
||||
<Namespace>Amazon.Auth.AccessControlPolicy</Namespace>
|
||||
<Namespace>Amazon.Auth.AccessControlPolicy.ActionIdentifiers</Namespace>
|
||||
<Namespace>Amazon.Internal</Namespace>
|
||||
<Namespace>Amazon.Lambda.S3Events</Namespace>
|
||||
<Namespace>Amazon.MissingTypes</Namespace>
|
||||
<Namespace>Amazon.Runtime</Namespace>
|
||||
<Namespace>Amazon.Runtime.CredentialManagement</Namespace>
|
||||
<Namespace>Amazon.Runtime.CredentialManagement.Internal</Namespace>
|
||||
<Namespace>Amazon.Runtime.EventStreams</Namespace>
|
||||
<Namespace>Amazon.Runtime.EventStreams.Internal</Namespace>
|
||||
<Namespace>Amazon.Runtime.Internal</Namespace>
|
||||
<Namespace>Amazon.Runtime.Internal.Auth</Namespace>
|
||||
<Namespace>Amazon.Runtime.Internal.Settings</Namespace>
|
||||
<Namespace>Amazon.Runtime.Internal.Transform</Namespace>
|
||||
<Namespace>Amazon.Runtime.Internal.Util</Namespace>
|
||||
<Namespace>Amazon.Runtime.SharedInterfaces</Namespace>
|
||||
<Namespace>Amazon.Runtime.SharedInterfaces.Internal</Namespace>
|
||||
<Namespace>Amazon.S3</Namespace>
|
||||
<Namespace>Amazon.S3.Encryption</Namespace>
|
||||
<Namespace>Amazon.S3.Encryption.Internal</Namespace>
|
||||
<Namespace>Amazon.S3.Internal</Namespace>
|
||||
<Namespace>Amazon.S3.IO</Namespace>
|
||||
<Namespace>Amazon.S3.Model</Namespace>
|
||||
<Namespace>Amazon.S3.Model.Internal.MarshallTransformations</Namespace>
|
||||
<Namespace>Amazon.S3.Transfer</Namespace>
|
||||
<Namespace>Amazon.S3.Util</Namespace>
|
||||
<Namespace>Amazon.Util</Namespace>
|
||||
<Namespace>Amazon.Util.Internal</Namespace>
|
||||
<Namespace>Amazon.Util.Internal.PlatformServices</Namespace>
|
||||
<Namespace>Newtonsoft.Json</Namespace>
|
||||
<Namespace>Newtonsoft.Json.Converters</Namespace>
|
||||
<Namespace>Newtonsoft.Json.Linq</Namespace>
|
||||
<Namespace>Newtonsoft.Json.Schema</Namespace>
|
||||
<Namespace>Newtonsoft.Json.Serialization</Namespace>
|
||||
<Namespace>System</Namespace>
|
||||
<Namespace>System.Diagnostics</Namespace>
|
||||
<Namespace>System.Diagnostics.Tracing</Namespace>
|
||||
<Namespace>System.IO.Compression</Namespace>
|
||||
<Namespace>ThirdParty.BouncyCastle.Asn1</Namespace>
|
||||
<Namespace>ThirdParty.BouncyCastle.Asn1.Utilities</Namespace>
|
||||
<Namespace>ThirdParty.BouncyCastle.Math</Namespace>
|
||||
<Namespace>ThirdParty.BouncyCastle.OpenSsl</Namespace>
|
||||
<Namespace>ThirdParty.BouncyCastle.Utilities.IO.Pem</Namespace>
|
||||
<Namespace>ThirdParty.Ionic.Zlib</Namespace>
|
||||
<Namespace>ThirdParty.Json.LitJson</Namespace>
|
||||
<Namespace>ThirdParty.MD5</Namespace>
|
||||
</Query>
|
||||
|
||||
void Main()
|
||||
{
|
||||
var baseDir = @"D:\Git\Jazz";
|
||||
|
||||
var solution = Path.Combine(baseDir, "veracode.sln");
|
||||
var regex = new Regex(@"[^=]*=\s+""([^""]*)"",\s""([^""]*)"".*");
|
||||
var veracodeProjectFolders = File.ReadAllLines(solution)
|
||||
.Where(l => l.StartsWith("Project("))
|
||||
.Where(l => regex.Match(l).Success)
|
||||
.ToList();
|
||||
var fileTypes = new Regex(@"^\.vb$|^\.css?$|^\.jsx?$|^\.html$|^\.as[achmp]{1}x$|^\.xs[xd]{1}$");
|
||||
//veracodeProjectFolders.Dump();
|
||||
var vpnames = veracodeProjectFolders
|
||||
.Where(l => !string.IsNullOrEmpty(regex.Replace(l, "$1")))
|
||||
.ToDictionary(l => regex.Replace(l, "$1"), l => Path.GetDirectoryName(Path.Combine(baseDir, regex.Replace(l, "$2"))));
|
||||
var vpf = vpnames.Values.ToList();
|
||||
|
||||
//vpnames.Dump();
|
||||
//vpf.ConvertAll(v => Path.GetDirectoryName(Path.Combine(baseDir, v))).Dump();
|
||||
|
||||
baseDir = Path.Combine(baseDir, @"Code\");
|
||||
var dirs = Directory.EnumerateDirectories(baseDir)
|
||||
.Where(d => vpf.Contains(d))
|
||||
.ToList()
|
||||
.ConvertAll(d => d.Replace(baseDir, ""));
|
||||
var fileSizes = new Dictionary<string, Dictionary<string, long>>();
|
||||
var fileExtensions = new List<string>();
|
||||
foreach (var dir in dirs)
|
||||
{
|
||||
var path = Path.Combine(baseDir, dir);
|
||||
//$"{baseDir} + {dir} = {path}".Dump();
|
||||
foreach (var file in Directory.GetFiles(path, "*.*", SearchOption.AllDirectories))
|
||||
{
|
||||
if (file.Contains(@"\obj\") || file.Contains(@"\bin\")) continue;
|
||||
var fi = new FileInfo(file);
|
||||
fileExtensions.Add(fi.Extension);
|
||||
if (!fileTypes.IsMatch(fi.Extension)) continue;
|
||||
var fDir = fi.DirectoryName.Replace(baseDir, "").Split(Path.DirectorySeparatorChar)[0];
|
||||
var fSize = fi.Length;
|
||||
if (!fileSizes.ContainsKey(dir))
|
||||
fileSizes.Add(dir, new Dictionary<string, long>());
|
||||
if (!fileSizes[dir].ContainsKey(fi.Extension))
|
||||
fileSizes[dir].Add(fi.Extension, 0);
|
||||
fileSizes[dir][fi.Extension] += fSize;
|
||||
}
|
||||
}
|
||||
var report = fileSizes.Keys.ToList()
|
||||
.ConvertAll(key => fileSizes[key].Keys.ToList()
|
||||
.ConvertAll(ext => new DirectorySize { Directory = key, FileExtension = ext, fileSize = fileSizes[key][ext] }))
|
||||
.SelectMany(x => x.Select(y => y));
|
||||
report.Sum(x => x.fileSize).BytesToString().Dump("Total Source");
|
||||
report.OrderBy(r => r.Directory).ThenBy(r => r.FileExtension).Dump();
|
||||
fileExtensions.Distinct().OrderBy(e => e).Dump();
|
||||
}
|
||||
|
||||
// Define other methods and classes here
|
||||
|
||||
public class DirectorySize
|
||||
{
|
||||
public string Directory { get; set; }
|
||||
public string FileExtension { get; set; }
|
||||
public long fileSize { get; set; }
|
||||
object ToDump() => new
|
||||
{
|
||||
Directory,
|
||||
FileExtension,
|
||||
FileSize = new XElement("LINQPad.HTML",
|
||||
new XElement("div",
|
||||
new XAttribute("align", "right"),
|
||||
new XAttribute("style", $"background-color:{((fileSize > Math.Pow(1024, 3)) ? "red" : (fileSize > Math.Pow(1024, 2)) ? "violet" : "white")};"),
|
||||
$"{fileSize.BytesToString()}".PadLeft(10))),
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user