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(); }
private void CompileTemplate(FreudeProject project) { string templateBody = ReadTemplateFile(); ICompiledRazorTemplate compiledTemplate = freudeTemplatingEngine.CompileTemplate("default", templateFileName, templateBody); project.RegisterTemplate("default", compiledTemplate); }
private void ProcessProjectFiles(FreudeProject project) { foreach (string fileName in projectBuilder.ListProjectFiles(project)) { if (Path.GetExtension(fileName) == ".freude") { ProcessFreudeFile(project, fileName); } else { CopyFileToBuildDir(fileName); } } }
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)); }
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); }
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)); }
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); }
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); }
public IEnumerable <string> ListBuiltFiles(FreudeProject project) { return(ListBuiltFilesPrivate(project.BuildDir)); }
public IEnumerable <string> ListProjectFiles(FreudeProject project) { return(ListProjectFilesPrivate(project.SourceDir)); }
public IEnumerable <string> ListProjectFiles(FreudeProject project) { Contract.Requires(project != null); Contract.Ensures(Contract.Result <IEnumerable <string> >() != null); throw new System.NotImplementedException(); }
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)); }
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(); }