Ejemplo n.º 1
0
        public void Cleanup()
        {
            _fileSystem.ForceClean(_directory);
            _fileSystem.DeleteDirectory(_directory);

            RippleFileSystem.Live();
        }
Ejemplo n.º 2
0
        public SolutionFiles(IFileSystem fileSystem, ISolutionLoader loader)
        {
            resetDirectories(RippleFileSystem.FindSolutionDirectory());

            _fileSystem = fileSystem;
            _loader     = loader;
        }
Ejemplo n.º 3
0
        public void TearDown()
        {
            theFileSystem.ForceClean(theSolutionDir);
            theFileSystem.DeleteDirectory(theSolutionDir);

            RippleFileSystem.Live();
        }
Ejemplo n.º 4
0
        public override bool Execute(GitIgnoreInput input)
        {
            var fileSystem = new FileSystem();

            var gitIgnoreFile = RippleFileSystem.FindSolutionDirectory().AppendPath(".gitignore");

            if (input.Line.IsNotEmpty())
            {
                ConsoleWriter.Write("Writing \"{0}\" to {1}", input.Line, gitIgnoreFile);

                fileSystem.AlterFlatFile(gitIgnoreFile, list => list.Fill(input.Line));

                ConsoleWriter.Line();
                ConsoleWriter.Line();
            }

            ConsoleWriter.PrintHorizontalLine();
            ConsoleWriter.Write(gitIgnoreFile);
            ConsoleWriter.PrintHorizontalLine();
            var text = fileSystem.ReadStringFromFile(gitIgnoreFile);

            ConsoleWriter.Write(text);
            ConsoleWriter.PrintHorizontalLine();

            return(true);
        }
Ejemplo n.º 5
0
        public static SolutionGraph BuildForCurrentDirectory()
        {
            var builder       = new SolutionGraphBuilder(new FileSystem());
            var codeDirectory = RippleFileSystem.FindCodeDirectory();

            return(builder.ReadFrom(codeDirectory));
        }
Ejemplo n.º 6
0
 public void TearDown()
 {
     theScenario.Cleanup();
     RippleFileSystem.Live();
     FeedRegistry.Reset();
     RippleOperation.Reset();
 }
Ejemplo n.º 7
0
        public static ISolutionBuilder NewSolutionBuilder(Solution solution)
        {
            var loader = new InMemorySolutionLoader(solution);
            var files  = SolutionFiles.FromDirectory(RippleFileSystem.CurrentDirectory(), loader);

            return(new SolutionBuilder(files, ProjectReader.Basic()));
        }
Ejemplo n.º 8
0
 public IEnumerable <Solution> FindSolutions()
 {
     if (RippleFileSystem.IsSolutionDirectory())
     {
         yield return(SolutionBuilder.ReadFromCurrentDirectory());
     }
 }
Ejemplo n.º 9
0
        public override bool Execute(WhereAmIInput input)
        {
            Console.WriteLine("The root code directory for ripple is " + RippleFileSystem.FindCodeDirectory());
            Console.WriteLine("ripple.exe is at " + RippleFileSystem.RippleExeLocation());

            return(true);
        }
Ejemplo n.º 10
0
        public void Describe(Description description)
        {
            description.Title = "Solution Graph at {0}".ToFormat(RippleFileSystem.FindCodeDirectory());

            var solutions = description.AddList("Solutions", _orderedSolutions.Value.Select(x => new SolutionListItem(x)));

            solutions.Label = "Solutions";
        }
Ejemplo n.º 11
0
        public DirectorySandbox(string directory)
        {
            _directory  = directory;
            _fileSystem = new FileSystem();

            RippleFileSystem.StubCurrentDirectory(directory);
            RippleFileSystem.StopTraversingAt(directory);
        }
Ejemplo n.º 12
0
        public void TearDown()
        {
            var fileSystem = new FileSystem();

            fileSystem.DeleteDirectory(theCodeDir);

            RippleFileSystem.Live();
        }
Ejemplo n.º 13
0
        public SolutionScenario(string directory, string cacheDirectory)
        {
            _directory      = directory;
            _cacheDirectory = cacheDirectory;
            _fileSystem     = new FileSystem();

            RippleFileSystem.StubCurrentDirectory(_directory);
            RippleFileSystem.StopTraversingAt(_directory);
        }
Ejemplo n.º 14
0
        public void finding_the_solution_dir_with_do_not_throw_argument_should_not_throw()
        {
            var nonSolutionDir = theCodeDir.AppendPath("not-a-solution-dir");

            fileSystem.CreateDirectory(nonSolutionDir);
            RippleFileSystem.StubCurrentDirectory(nonSolutionDir);

            RippleFileSystem.FindSolutionDirectory(false).ShouldBeNull();
        }
Ejemplo n.º 15
0
        public void SetUp()
        {
            theScenario = SolutionScenario.Create(scenario =>
            {
                scenario.Solution("Test");
            });

            RippleFileSystem.StubCurrentDirectory(theScenario.DirectoryForSolution("Test"));
        }
        private string writeBatchInstructionsFile(Action <TextWriter> configure)
        {
            var file = RippleFileSystem.CurrentDirectory().AppendPath(Guid.NewGuid().ToString() + ".txt");

            using (var writer = new StreamWriter(file))
            {
                configure(writer);
            }

            return(file);
        }
Ejemplo n.º 17
0
        private string writeBatchInstructionsFile(Action <TextWriter> configure)
        {
            var file = RippleFileSystem.CurrentDirectory().AppendPath(RestoreCommand.BatchFile);

            using (var writer = new StreamWriter(file))
            {
                configure(writer);
            }

            return(file);
        }
Ejemplo n.º 18
0
        public SolutionFiles(IFileSystem fileSystem)
        {
            if (RippleFileSystem.IsSolutionDirectory())
            {
                resetDirectories(RippleFileSystem.FindSolutionDirectory());
            }

            _fileSystem = fileSystem;
            _findLoader = findLoader;
            _loader     = new Lazy <ISolutionLoader>(() => _findLoader());
        }
Ejemplo n.º 19
0
        public void SetUp()
        {
            theScenario = SolutionGraphScenario.Create(scenario =>
            {
                scenario.Solution("Test", test =>
                {
                    test.SolutionDependency("StructureMap", "2.6.3", UpdateMode.Fixed);
                    test.ProjectDependency("Test", "structuremap");

                    test.ProjectDependency("Test", "FubuCore");
                    test.ProjectDependency("Test2", "FubuCore");
                });
            });

            theSolution = theScenario.Find("Test");

            FeedScenario.Create(scenario =>
            {
                scenario.For(Feed.Fubu)
                .Add("structuremap", "2.6.4.54")
                .Add("FubuCore", "1.0.0.0")
                .Add("Bottles", "1.0.0.0")
                .Add("FubuMVC.Katana", "1.0.0.1")
                .Add("FubuMVC.Core", "1.0.1.1")
                .Add("FubuMVC.OwinHost", "1.2.0.0")
                .ConfigureRepository(teamcity =>
                {
                    teamcity.ConfigurePackage("FubuMVC.Katana", "1.0.0.1", katana =>
                    {
                        katana.DependsOn("FubuMVC.Core");
                        katana.DependsOn("FubuMVC.OwinHost");
                    });

                    teamcity.ConfigurePackage("FubuMVC.OwinHost", "1.2.0.0", owin => owin.DependsOn("FubuMVC.Core"));
                });

                scenario.For(Feed.NuGetV2)
                .Add("structuremap", "2.6.3");
            });

            RippleFileSystem.StubCurrentDirectory(theScenario.DirectoryForSolution("Test"));

            theFile = writeBatchInstructionsFile(writer =>
            {
                writer.WriteLine("Bottles/1.0.0.0:Test,Test2");
                writer.WriteLine("Test: FubuMVC.Katana");
                writer.WriteLine("Test2: FubuMVC.Core");
            });

            RippleOperation
            .With(theSolution, resetSolution: true)
            .Execute <RestoreInput, RestoreCommand>();
        }
Ejemplo n.º 20
0
        public SolutionGraphScenario(string directory, string cacheDirectory)
        {
            _directory      = directory;
            _cacheDirectory = cacheDirectory;
            _fileSystem     = new FileSystem();

            var builder = new SolutionGraphBuilder(_fileSystem);

            _graph = new Lazy <SolutionGraph>(() => builder.ReadFrom(_directory));

            RippleFileSystem.StubCurrentDirectory(_directory);
        }
        public void SetUp()
        {
            FeedScenario.Create(scenario =>
            {
                scenario.For(Feed.Fubu)
                .Add("FubuCore", "1.0.0.0")
                .Add("Bottles", "1.0.0.0")
                .Add("FubuMVC.Katana", "1.0.0.1")
                .Add("FubuMVC.Core", "1.0.1.1")
                .Add("FubuMVC.OwinHost", "1.2.0.0")
                .ConfigureRepository(teamcity =>
                {
                    teamcity.ConfigurePackage("FubuMVC.Katana", "1.0.0.1", katana =>
                    {
                        katana.DependsOn("FubuMVC.Core");
                        katana.DependsOn("FubuMVC.OwinHost");
                    });

                    teamcity.ConfigurePackage("FubuMVC.OwinHost", "1.2.0.0", owin => owin.DependsOn("FubuMVC.Core"));
                });
            });

            theScenario = SolutionScenario.Create(scenario =>
            {
                scenario.Solution("Test", test =>
                {
                    test.ProjectDependency("Test", "FubuCore");
                    test.ProjectDependency("Test2", "FubuCore");
                });
            });

            theSolution = theScenario.Find("Test");

            RippleFileSystem.StubCurrentDirectory(theScenario.DirectoryForSolution("Test"));

            theFile = writeBatchInstructionsFile(writer =>
            {
                writer.WriteLine("Bottles/1.0.0.0:Test,Test2");
                writer.WriteLine("Test: FubuMVC.Katana");
                writer.WriteLine("Test2: FubuMVC.Core");
            });

            RippleOperation
            .With(theSolution)
            .Execute <BatchInstallInput, BatchInstallCommand>(input =>
            {
                input.FileFlag = theFile;
            });
        }
Ejemplo n.º 22
0
        public void Should_use_solution_dir_as_base_dir()
        {
            Assert.True(BranchDetector.CanDetectBranch());
            Assert.IsNotEmpty(BranchDetector.Current());


            BranchDetector.Live();

            //simulate a no git dir
            RippleFileSystem.StubCurrentDirectory(Path.GetTempPath());

            Assert.False(BranchDetector.CanDetectBranch());

            Assert.Throws <RippleFatalError>(() => BranchDetector.Current());
        }
Ejemplo n.º 23
0
        public void SetUp()
        {
            theCodeDir     = ".".AppendPath("code");
            theSolutionDir = theCodeDir.AppendPath("ripple");

            var fileSystem = new FileSystem();

            fileSystem.CreateDirectory(theCodeDir);
            fileSystem.CreateDirectory(theSolutionDir);

            fileSystem.WriteStringToFile(Path.Combine(theSolutionDir, SolutionFiles.ConfigFile), "");

            RippleFileSystem.StubCurrentDirectory(theCodeDir);
            RippleFileSystem.StopTraversingAt(theCodeDir);
        }
Ejemplo n.º 24
0
        public void SetUp()
        {
            rootDir        = Path.GetTempPath().AppendRandomPath();
            theCodeDir     = rootDir.AppendPath("code");
            theSolutionDir = theCodeDir.AppendPath("ripple");
            theCurrentDir  = theSolutionDir.AppendPath("src", "project1");

            fileSystem = new FileSystem();
            fileSystem.CreateDirectory(theCodeDir);
            fileSystem.CreateDirectory(theSolutionDir);
            fileSystem.CreateDirectory(theCurrentDir);

            fileSystem.WriteStringToFile(Path.Combine(theSolutionDir, SolutionFiles.ConfigFile), "");

            RippleFileSystem.StubCurrentDirectory(theCurrentDir);
        }
Ejemplo n.º 25
0
        public override bool Execute(InitInput input)
        {
            var rippleConfigDirectory = RippleFileSystem.FindSolutionDirectory(false);

            if (rippleConfigDirectory.IsNotEmpty())
            {
                RippleAssert.Fail(ExistingSolution.ToFormat(rippleConfigDirectory));
                return(false);
            }

            var builder  = NewSolutionBuilder(input.ToSolution());
            var solution = builder.Build();

            solution.Save(true);

            return(true);
        }
Ejemplo n.º 26
0
        public void SetUp()
        {
            theFileSystem  = new FileSystem();
            theSolutionDir = Guid.NewGuid().ToString().ToFullPath();

            theFileSystem.CreateDirectory(theSolutionDir);
            theFileSystem.CreateDirectory(theSolutionDir, "src");

            createProject("ProjectA");
            createProject("ProjectB");
            createProject("ProjectC");

            RippleFileSystem.StopTraversingAt(theSolutionDir.ParentDirectory());
            RippleFileSystem.StubCurrentDirectory(theSolutionDir);

            new InitCommand().Execute(new InitInput {
                Name = "Test"
            });
        }
Ejemplo n.º 27
0
        public bool Matches(IFileSystem fileSystem, string directory)
        {
            if (!RippleFileSystem.IsSolutionDirectory(directory))
            {
                return(false);
            }

            var slnDir     = RippleFileSystem.FindSolutionDirectory(directory);
            var configFile = Path.Combine(slnDir, SolutionFiles.ConfigFile);

            if (!File.Exists(configFile))
            {
                return(false);
            }

            using (var stream = File.OpenRead(configFile))
            {
                return(stream.ReadAllText().Contains("<?xml"));
            }
        }
Ejemplo n.º 28
0
 public IEnumerable <Solution> FindSolutions()
 {
     if (SolutionFlag.IsNotEmpty())
     {
         yield return(_graph.Value[SolutionFlag]);
     }
     else if (AllFlag || RippleFileSystem.IsCodeDirectory())
     {
         foreach (var solution in _graph.Value.AllSolutions)
         {
             yield return(solution);
         }
     }
     else
     {
         if (RippleFileSystem.IsSolutionDirectory())
         {
             yield return(SolutionBuilder.ReadFromCurrentDirectory());
         }
     }
 }
Ejemplo n.º 29
0
        public override bool Execute(RestoreInput input)
        {
            Thread.Sleep(5000);

            var operation = RippleOperation
                            .For(input)
                            .Step <DownloadMissingNugets>()
                            .Step <ExplodeDownloadedNugets>()
                            .Step <ProcessDirectives>();

            if (input.FixReferencesFlag)
            {
                operation.Step <FixReferences>();
            }

            var success = operation.Execute();

            if (!success)
            {
                return(false);
            }

            var file = RippleFileSystem.CurrentDirectory().AppendPath(BatchFile);

            if (File.Exists(file))
            {
                success = new BatchInstallCommand().Execute(new BatchInstallInput
                {
                    FileFlag = file
                });
            }

            if (input.FixSolutionFlag && success)
            {
                return(new FixCommand().Execute(new FixInput()));
            }

            return(success);
        }
Ejemplo n.º 30
0
        public IEnumerable <NugetPlanRequest> Requests(Solution solution)
        {
            BatchOperation operation;

            if (FileFlag.IsNotEmpty())
            {
                var file = Path.Combine(RippleFileSystem.CurrentDirectory(), FileFlag);
                RippleLog.Info("Detected {0}. Reading batch instructions.".ToFormat(FileFlag));

                var contents = File.ReadAllText(file);
                operation = BatchOperation.Parse(solution, contents);

                After = () => File.Delete(file);
            }
            else
            {
                operation = readFromCommandLine(solution);
            }


            return(operation.Requests);
        }