protected override async Task <IEnumerable <string> > ProcessImpl(Task <object> previousTask)
        {
            // previous task should be a no-op
            await previousTask;

            return(SolutionFinder.GetSolutions(_folderPath, _searchFilter, _searchOption));
        }
Beispiel #2
0
        private void WatchRun(Func <MiruSolution, string> func)
        {
            var solutionFinder = new SolutionFinder(new FileSystem());
            var solution       = solutionFinder.FromDir(Directory.GetCurrentDirectory());

            var processRunner = new ProcessRunner(_reporter);

            // FIXME: npm and dotnet path finder:
            //  Win: where
            //  bash: which
            var webpack = new ProcessSpec()
            {
                Executable       = OS.IsWindows ? "c:\\Program Files\\nodejs\\npm.cmd" : "npm",
                WorkingDirectory = solution.Solution.AppDir,
                Arguments        = new[] { "--prefix", solution.Solution.AppDir.ToString(), "run", "watch" },
            };

            var dotnet = new ProcessSpec()
            {
                Executable       = "dotnet",
                WorkingDirectory = solution.Solution.AppDir,
                Arguments        = new[] { "watch", "run" }
            };

            var dotnetRunner  = processRunner.RunAsync(dotnet, _cts.Token);
            var webpackRunner = processRunner.RunAsync(webpack, _cts.Token);

            Task.WaitAll(dotnetRunner);
            Task.WaitAll(dotnetRunner, webpackRunner);
        }
Beispiel #3
0
        public MiruTestSolution() : base(string.Empty)
        {
            var baseSolution = new SolutionFinder().FromCurrentDir().Solution;

            RootDir = baseSolution.TestsDir / "Miru.Tests";

            AppDir   = RootDir;
            TestsDir = RootDir;
        }
 public static IEnumerable <string[]> FindSolutionFiles()
 {
     // set field here to prevent initialization error when path is not found
     if (_slnFinder == null)
     {
         _slnFinder = new SolutionFinder(RepositoryRoot, OrderBy.Alphabetical);
     }
     return(_slnFinder.GetTestData());
 }
Beispiel #5
0
        public void find_the_one_and_only_solution()
        {
            fileSystem.CreateDirectory("only-one");
            fileSystem.WriteStringToFile("only-one".AppendPath("anything.sln"), "whatever");

            Environment.CurrentDirectory = Environment.CurrentDirectory.AppendPath("only-one").ToFullPath();

            SolutionFinder.FindSolutionFile().ShouldEqual("anything.sln");
        }
Beispiel #6
0
        private static IHostBuilder UseSolution(this IHostBuilder builder)
        {
            var solution = new SolutionFinder().FromCurrentDir().Solution;

            App.Name     = solution.Name;
            App.Solution = solution;

            return(builder);
        }
Beispiel #7
0
            public void Find(Solwrt solwrt)
            {
                SolutionFinder finder    = new SolutionFinder();
                IList          solutions = finder.FindSolutions(new KnightSolutionEnumerator(hatesMap, needsMap, KnigtsNumber));

                foreach (KnightSolution solution in solutions)
                {
                    solwrt.Write(solution.ToString());
                }
            }
Beispiel #8
0
        public Solution[] FindSolutions(Solution previousSolution)
        {
            var solutionFinder = new SolutionFinder(this);
            var solutions      = solutionFinder.FindSolutions(previousSolution);

            if (solutions == null)
            {
                return(new Solution[0]);
            }

            return(solutions.ToArray());
        }
Beispiel #9
0
        private void ShowDir(Func <MiruSolution, string> func)
        {
            var solutionFinder = new SolutionFinder(new FileSystem());

            var result = solutionFinder.FromDir(Directory.GetCurrentDirectory());

            if (result.FoundSolution)
            {
                Console.WriteLine(func(result.Solution));
            }
            else
            {
                Console2.YellowLine($"{Directory.GetCurrentDirectory()} is not part of a Miru Solution structure");
            }
        }
 public NewProjectFromGitViewModel(
     FilePicker filePickerService,
     ILoadingDisplayer loadingDisplayer,
     IStartModuleTabOpener startModuleTabOpener,
     IGitCloner gitCloner,
     SolutionFinder solutionFinder)
 {
     _filePickerService    = filePickerService;
     _loadingDisplayer     = loadingDisplayer;
     _startModuleTabOpener = startModuleTabOpener;
     _gitCloner            = gitCloner;
     _solutionFinder       = solutionFinder;
     ProjectPathCommand    = new DelegateCommand(PickProjectPath);
     GoNextCommand         = new DelegateCommand(async() => await GoNext());
     BranchName            = "master";
 }
Beispiel #11
0
        public static IHostBuilder UseMiruSolution(this IHostBuilder builder)
        {
            // if can't find solution, maybe it is running from compiled binaries
            var solution =
                new SolutionFinder().FromCurrentDir().Solution ??
                new UnknownSolution();

            App.Name     = solution.Name;
            App.Solution = solution;
            App.Assembly = Assembly.GetEntryAssembly();

            builder.ConfigureServices(services =>
            {
                services.AddMiruSolution(solution);
            });

            return(builder);
        }
        public void FindsSolutions_Random()
        {
            _sut = new SolutionFinder(_dir, OrderBy.Random);

            var alphabetical = Lists.NewList <string>();

            for (var i = 0; i < 30; i++)
            {
                var sln = "S{0:0000}.sln".FormatEx(i);
                CreateSolution(sln);
                alphabetical.Add(sln);
            }

            var actual = _sut.Solutions.ToArray();

            CollectionAssert.AreNotEqual(alphabetical, actual);
            CollectionAssert.AreEquivalent(alphabetical, actual);
        }
Beispiel #13
0
        public void find_multiples_so_it_is_indeterminate()
        {
            fileSystem.CreateDirectory("multiples");
            fileSystem.CleanDirectory("multiples");
            fileSystem.WriteStringToFile("multiples".AppendPath("anything.sln"), "whatever");
            fileSystem.WriteStringToFile("multiples".AppendPath("else.sln"), "whatever");

            Environment.CurrentDirectory = Environment.CurrentDirectory.AppendPath("multiples").ToFullPath();


            SolutionFinder.FindSolutionFile().ShouldBeNull();

            // find the multiples too
            var solutions = SolutionFinder.FindSolutions();

            solutions.ShouldHaveTheSameElementsAs(
                "anything.sln", "else.sln");
        }
Beispiel #14
0
        private static async Task AnaylzeSolutionDIff(SlnOptions options, DirectoryInfo workingFolder, ILogger logger)
        {
            // Locate and register the default instance of MSBuild installed on this machine.
            MSBuildLocator.RegisterDefaults();

            var msBuild = MSBuildWorkspace.Create();

            if (!string.IsNullOrEmpty(options.SolutionFilePath))
            {
                await ProcessSln(options, options.SolutionFilePath, workingFolder, msBuild, logger);
            }
            else
            {
                foreach (var sln in SolutionFinder.GetSolutions(workingFolder.FullName))
                {
                    await ProcessSln(options, sln, workingFolder, msBuild, logger);
                }
            }
        }
Beispiel #15
0
    public static void Export()
    {
        var rootDir = new SolutionFinder().FromCurrentDir().Solution.RootDir;

        var param = new StubParams()
        {
            SkeletonDir = rootDir / "samples" / "Corpo.Skeleton",
            StubDir     = rootDir / "src" / "Miru.Core" / "Templates"
        };

        Directories.DeleteIfExists(param.StubDir);
        Directory.CreateDirectory(param.StubDir);

        // FIXME: use Solution to build the artifacts' path
        new SolutionStubExport(param).Export();

        new CommandStubExport(param).Export();

        new QueryShowStubExport(param).Export();

        new QueryListStubExport(param).Export();

        new MigrationStubExport(param).Export();

        new EntityStubExport(param).Export();

        new ConsolableStubExport(param).Export();

        new JobStubExport(param).Export();

        new MailableStubExport(param).Export();

        new ConfigStubExport(param).Export();

        new FeatureScaffoldStubExport(param).Export();
    }
 public void Setup()
 {
     _dir = CreateTempDir();
     _sut = new SolutionFinder(_dir, OrderBy.Alphabetical);
 }
 public void PathDoesNotExist()
 {
     _sut = new SolutionFinder("C:\\doesNotExist\\", OrderBy.Alphabetical);
 }
 public void TrailingSlashIsCorrected()
 {
     _sut = new SolutionFinder("C:\\Windows", OrderBy.Alphabetical);
     Assert.IsTrue(_sut.Root.EndsWith("\\"));
 }