oskar / dotnet-overview Goto Github PK
View Code? Open in Web Editor NEWA .NET Core global tool to display a simple overview of all projects in a directory, with information such as target framework.
License: MIT License
A .NET Core global tool to display a simple overview of all projects in a directory, with information such as target framework.
License: MIT License
Use IConsole
and DI from McMaster.Extensions.CommandLineUtils package and write tests for Program
$ dotnet run --project ../DotNetOverview.Console/
Unhandled Exception: System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.Max[TSource](IEnumerable`1 source, Func`2 selector)
at DotNetOverview.Console.Program.PrintStatistics(IEnumerable`1 projects) in /Users/oskar/git/dotnet-overview/DotNetOverview.Console/Program.cs:line 27
at DotNetOverview.Console.Program.Main(String[] args) in /Users/oskar/git/dotnet-overview/DotNetOverview.Console/Program.cs:line 18
C:\Projects> dotnet overview
Found more than 100 csproj files. Do you want to proceed? [Y/n]
The tool should display the actual number of projects found, not just that is was more than 100...
Investigate if available in old format as well.
Oskars-MBP:~ oskar$ dotnet overview
Unhandled exception. System.UnauthorizedAccessException: Access to the path '/Users/oskar/.Trash' is denied.
---> System.IO.IOException: Operation not permitted
--- End of inner exception stack trace ---
at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
at System.IO.Enumeration.FileSystemEnumerator`1.DequeueNextDirectory()
at System.IO.Enumeration.FileSystemEnumerator`1.DirectoryFinished()
at System.IO.Enumeration.FileSystemEnumerator`1.FindNextEntry(Byte* entryBufferPtr, Int32 bufferLength)
at System.IO.Enumeration.FileSystemEnumerator`1.MoveNext()
at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at System.IO.DirectoryInfo.GetFiles(String searchPattern, EnumerationOptions enumerationOptions)
at System.IO.DirectoryInfo.GetFiles(String searchPattern, SearchOption searchOption)
at DotNetOverview.Program.OnExecute() in /home/runner/work/dotnet-overview/dotnet-overview/src/Program.cs:line 60
--- End of stack trace from previous location ---
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.Invoke(MethodInfo method, Object instance, Object[] arguments)
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.OnExecute(ConventionContext context, CancellationToken cancellationToken)
at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.<>c__DisplayClass0_0.<<Apply>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync(String[] args, CancellationToken cancellationToken)
at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](CommandLineContext context, CancellationToken cancellationToken)
at DotNetOverview.Program.<Main>(String[] args)
The working directory from which the docker container is started has to be shared with the container, otherwise no csproj files will ever be found inside the container.
Rename field to "csproj SDK format" or change from boolean field type to string and have value "SDK" vs "Legacy".
$ dotnet-overview nonexistingpath
Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.DirectoryNotFoundException: Could not find a part of the path '/Users/oskar/git/dotnet-overview/nonexistingpath'.
at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound)
at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, EnumerationOptions options)
at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options)
at System.IO.Enumeration.FileSystemEnumerableFactory.FileInfos(String directory, String expression, EnumerationOptions options)```
Gather lots of csproj files from public GitHub repos and run the tool on them.
This will make the tool available for anyone: dotnet tool install dotnet-overview -g
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.