コード例 #1
0
 IEnumerable <string> IProjectBuilder.ListBuiltFiles(FreudeProject project)
 {
     Contract.Requires(project != null);
     Contract.Requires(project.BuildDir != null);
     Contract.Ensures(Contract.Result <IEnumerable <string> >() != null);
     throw new System.NotImplementedException();
 }
コード例 #2
0
ファイル: BuildCommand.cs プロジェクト: breki/freude
        private void CompileTemplate(FreudeProject project)
        {
            string templateBody = ReadTemplateFile();
            ICompiledRazorTemplate compiledTemplate = freudeTemplatingEngine.CompileTemplate("default", templateFileName, templateBody);

            project.RegisterTemplate("default", compiledTemplate);
        }
コード例 #3
0
ファイル: BuildCommand.cs プロジェクト: breki/freude
 private void ProcessProjectFiles(FreudeProject project)
 {
     foreach (string fileName in projectBuilder.ListProjectFiles(project))
     {
         if (Path.GetExtension(fileName) == ".freude")
         {
             ProcessFreudeFile(project, fileName);
         }
         else
         {
             CopyFileToBuildDir(fileName);
         }
     }
 }
コード例 #4
0
        public void ListBuiltFiles()
        {
            const string BuildDir = "builddir";

            FreudeProject project = new FreudeProject();

            project.BuildDir = BuildDir;

            FileStructureMocker fileStructure = new FileStructureMocker();

            fileStructure.AddFile(Path.Combine(BuildDir, @"file1.txt"));
            fileStructure.AddFile(Path.Combine(BuildDir, @"dir1\file2"));
            fileStructure.Mock(fileSystem);

            CollectionAssert.AreEquivalent(new[] { @"builddir\file1.txt", @"builddir\dir1\file2" }, builder.ListBuiltFiles(project));
        }
コード例 #5
0
ファイル: BuildCommand.cs プロジェクト: breki/freude
        public override int Execute(IConsoleEnvironment env)
        {
            Contract.Assume(buildDirectory != null);
            Contract.Assume(projectSourceDirectory != null);

            FreudeProject project = new FreudeProject();

            project.SourceDir = projectSourceDirectory;
            project.BuildDir  = buildDirectory;

            CompileTemplate(project);

            PrepareBuildDir();
            ProcessProjectFiles(project);
            WriteBuildMarkerFile();

            return(0);
        }
コード例 #6
0
        public void ListProjectFiles()
        {
            const string  ProjectDir = "projDir";
            FreudeProject project    = new FreudeProject();

            project.SourceDir = ProjectDir;

            FileStructureMocker fileStructure = new FileStructureMocker();

            fileStructure.AddFile(Path.Combine(ProjectDir, @"site.css"));
            fileStructure.AddFile(Path.Combine(ProjectDir, @"weather.freude"));
            fileStructure.AddFile(Path.Combine(ProjectDir, @"content\other.css"));
            fileStructure.AddFile(Path.Combine(ProjectDir, @"_templates\template.cshtml"));
            fileStructure.Mock(fileSystem);

            CollectionAssert.AreEquivalent(
                new[] { @"projDir\site.css", @"projDir\weather.freude", @"projDir\content\other.css" },
                builder.ListProjectFiles(project));
        }
コード例 #7
0
ファイル: DeployCommand.cs プロジェクト: breki/freude
        public override int Execute(IConsoleEnvironment env)
        {
            FreudeProject project = new FreudeProject();

            project.BuildDir = buildDirectory;

            using (IFtpSession ftpSession = ftpSessionFactory.CreateSession())
            {
                FtpConnectionData connData = new FtpConnectionData();

                connData.Credentials = new NetworkCredential(userName, password);
                connData.Host        = server;
                connData.Port        = port;

                log.InfoFormat(CultureInfo.InvariantCulture, "Connecting to the FTP server {0}:{1}...", connData.Host, connData.Port);

                ftpSession.BeginSession(connData);

                PathBuilder buildDirPath = new PathBuilder(buildDirectory);
                foreach (string sourceFileName in projectBuilder.ListBuiltFiles(project))
                {
                    PathBuilder sourceFileNameDebasedBuilder = buildDirPath.DebasePath(sourceFileName, false);
                    PathBuilder destinationFileName;
                    if (remoteRootDirectory != null)
                    {
                        destinationFileName = new PathBuilder(remoteRootDirectory).CombineWith(sourceFileNameDebasedBuilder);
                    }
                    else
                    {
                        destinationFileName = sourceFileNameDebasedBuilder;
                    }

                    string destinationFileNameUnixStyle = destinationFileName.ToUnixPath();

                    log.InfoFormat(CultureInfo.InvariantCulture, "Uploading file {0} to {1}...", sourceFileName, destinationFileNameUnixStyle);
                    ftpSession.UploadFile(sourceFileName, destinationFileNameUnixStyle);
                }
            }

            return(0);
        }
コード例 #8
0
ファイル: BuildCommand.cs プロジェクト: breki/freude
        private void ProcessFreudeFile(FreudeProject project, string fileName)
        {
            string freudeText = fileSystem.ReadFileAsString(fileName);

            ParsingContext parsingContext;
            DocumentDef    doc = freudeTextParser.ParseText(freudeText, out parsingContext);

            throw new NotImplementedException();
            //// todo: report parsing errors and warnings

            //string docHtml = htmlGenerator.GenerateHtml(doc);

            //ICompiledRazorTemplate template = project.GetTemplate("default");
            //string expandedBody = freudeTemplatingEngine.ExpandTemplate(template, doc, docHtml, project);

            //string destinationFileName = ConstructDestinationFileName (fileName);
            //destinationFileName = Path.ChangeExtension(destinationFileName, expandedFileExtension);

            //fileSystem.EnsureDirectoryExists(Path.GetDirectoryName(destinationFileName));
            //fileSystem.WriteFile(destinationFileName, expandedBody, Encoding.UTF8);
            //log.InfoFormat ("Built file '{0}'", destinationFileName);
        }
コード例 #9
0
 public IEnumerable <string> ListBuiltFiles(FreudeProject project)
 {
     return(ListBuiltFilesPrivate(project.BuildDir));
 }
コード例 #10
0
 public IEnumerable <string> ListProjectFiles(FreudeProject project)
 {
     return(ListProjectFilesPrivate(project.SourceDir));
 }
コード例 #11
0
 public IEnumerable <string> ListProjectFiles(FreudeProject project)
 {
     Contract.Requires(project != null);
     Contract.Ensures(Contract.Result <IEnumerable <string> >() != null);
     throw new System.NotImplementedException();
 }
コード例 #12
0
        public string ExpandTemplate(ICompiledRazorTemplate template, DocumentDef doc, string docHtml, FreudeProject project)
        {
            RazorEngineExecutionSettings executionSettings = new RazorEngineExecutionSettings();

            executionSettings.Properties.Add("Doc", doc);
            executionSettings.Properties.Add("DocHtml", docHtml);
            executionSettings.Properties.Add("Project", project);
            return(template.Execute(executionSettings));
        }
コード例 #13
0
        string IFreudeTemplatingEngine.ExpandTemplate(ICompiledRazorTemplate template, DocumentDef doc, string docHtml, FreudeProject project)
        {
            Contract.Requires(template != null);
            Contract.Requires(doc != null);
            Contract.Requires(docHtml != null);
            Contract.Requires(project != null);
            Contract.Ensures(Contract.Result <string> () != null);

            throw new System.NotImplementedException();
        }