protected override void Execute(CodeActivityContext context) { console = context.GetExtension <ActivityConsole>(); if (console == null) { console = new ActivityConsole(); } bool showDetails = ShowDetails.Get(context); string path = Path.Get(context); string filter = Filter.Get(context); List <string> fileNames = Directory.EnumerateFiles(path, filter).ToList(); foreach (string fileName in fileNames) { File.Delete(fileName); if (showDetails) { console.WriteLine(string.Format("Deleted file '{0}'.", fileName)); } } if (IncludeFolders.Get(context)) { List <string> directoryNames = Directory.EnumerateDirectories(path, filter).ToList(); foreach (string directoryName in directoryNames) { Directory.Delete(directoryName, true); if (showDetails) { console.WriteLine(string.Format("Deleted folder '{0}' and everything in it.", directoryName)); } } } }
public void Load(ISettingsStore settings) { var model = FileSettings.Load(settings); IncludeFolders.Load(model); IncludeExtensions.Load(model); ExcludeFolders.Load(model); ExcludePatterns.Load(model); }
public override int GetHashCode() { unchecked { var hashCode = IncludeFolders.GetHashCode(); hashCode = (hashCode * 397) ^ (int)Mode; hashCode = (hashCode * 397) ^ (Filter != null ? Filter.GetHashCode() : 0); return(hashCode); } }
public void Save(ISettingsStore settings) { var model = new FileSettings(); IncludeFolders.Populate(ref model); IncludeExtensions.Populate(ref model); ExcludeFolders.Populate(ref model); ExcludePatterns.Populate(ref model); model.Save(settings); if (!_hasChanges) { _hasChanges = IncludeFolders.IsDirty || IncludeExtensions.IsDirty || ExcludeFolders.IsDirty || ExcludePatterns.IsDirty; } }
public void ReadXml(XmlReader reader) { reader.Read(); XmlSerializer serializer = new XmlSerializer(typeof(string), new XmlRootAttribute(typeof(string).Name.ToLower())); _loc = serializer.Deserialize(reader) as string; serializer = new XmlSerializer(typeof(List <SourceFile>), new XmlRootAttribute("SourceFiles")); SourceFiles.AddRange(serializer.Deserialize(reader) as List <SourceFile>); serializer = new XmlSerializer(typeof(List <string>), new XmlRootAttribute("IncludeFolders")); IncludeFolders.AddRange(serializer.Deserialize(reader) as List <string>); serializer = new XmlSerializer(typeof(List <string>), new XmlRootAttribute("SystemDependencies")); SystemDeps.AddRange(serializer.Deserialize(reader) as List <string>); serializer = new XmlSerializer(typeof(ProjectProperties), new XmlRootAttribute("ProjectProperties")); Properties = serializer.Deserialize(reader) as ProjectProperties; }
public void Build() { string projectLocation = Path.GetDirectoryName(_loc); string objFolder = Path.Combine(projectLocation, "obj"); string binFolder = Path.Combine(projectLocation, "bin"); string includes = BuildIncludeString().Trim('\n'); string propStr = BuildPropertiesString().Trim('\n'); if (!Directory.Exists(objFolder)) { Directory.CreateDirectory(objFolder); } if (File.Exists($"{projectLocation}/scripts/prebuildScript.sh")) { Console.Write(ExternalPrograms.RunScript($"{projectLocation}/scripts/prebuildScript.sh")); } IEnumerable <SourceFile> viewCode = null; if (SourceFiles.Any(f => f.FileType == SourceCodeType.View)) { IEnumerable <string> viewFiles = SourceFiles .Where(f => f.FileType == SourceCodeType.View) .Select(f => f.Path); GMLInterface.ProcessFiles(viewFiles, IncludeFolders.First()); viewCode = viewFiles.Select(f => new SourceFile($"{Path.GetDirectoryName(f)}/{Path.GetFileNameWithoutExtension(f)}.g.c")).ToArray(); SourceFiles.AddRange(viewCode); } System.Console.WriteLine("Builing..."); foreach (SourceFile file in SourceFiles.Where(f => f.FileType == SourceCodeType.Code)) { string fileName = System.IO.Path.GetFileName(file.Path).Split('.', StringSplitOptions.RemoveEmptyEntries)[0]; ExternalPrograms.RunCompiler($"-c {file.Path} -o {objFolder}/{fileName}.o {includes} {propStr}"); } if (viewCode != null) { foreach (SourceFile viewFile in viewCode) { SourceFiles.Remove(viewFile); } viewCode = null; } var objFiles = Directory.GetFiles(objFolder) .Where(f => string.Compare(Path.GetExtension(f), ".o") == 0); if (objFiles.Any()) { System.Console.WriteLine("Linking..."); string link = BuildLinkString().Trim('\n'); StringBuilder sb = new StringBuilder(link); foreach (string o in objFiles) { sb.Append($"{o} "); } string outName = Path.GetFileNameWithoutExtension(_loc); if (!Directory.Exists(binFolder)) { Directory.CreateDirectory(binFolder); } sb.Append($"-o {binFolder}/{outName}.lef"); ExternalPrograms.RunCompiler(sb.ToString()); if (File.Exists($"{projectLocation}/scripts/postbuildScript.sh")) { Console.Write(ExternalPrograms.RunScript($"{projectLocation}/scripts/postbuildScript.sh")); } } }