Example #1
0
 public void AddFileMask(string mask)
 {
     if (!FileMasks.Contains(mask))
     {
         FileMasks.Add(mask);
     }
 }
Example #2
0
        public List <string> ListFiles()
        {
            List <string> result = new List <string>();

            foreach (string searchPath in SearchPaths.Split(';'))
            {
                string       directory;
                SearchOption option;
                if (Path.GetFileName(searchPath) == "**")
                {
                    directory = Path.GetDirectoryName(searchPath);
                    option    = SearchOption.AllDirectories;
                }
                else
                {
                    directory = searchPath;
                    option    = SearchOption.TopDirectoryOnly;
                }
                foreach (string fileMask in FileMasks.Split(';'))
                {
                    foreach (string fileName in Directory.GetFiles(directory, fileMask, option))
                    {
                        string extension = Path.GetExtension(fileName);
                        if (!String.Equals(extension, ".dproj", StringComparison.InvariantCultureIgnoreCase))
                        {
                            result.Add(fileName);
                        }
                    }
                }
            }
            return(result);
        }
        private List <string> GetNewFiles()
        {
            if (IsProjectImportEnabled())
            {
                return(GetFilesFromImportProject());
            }

            return(Directory.GetFiles(SourceFolder)
                   .Where(f => FileMasks.Any(m => m.IsMatch(f)) && !StatusIndicator.FilesToIgnore.Contains(Path.GetFileName(f)))
                   .ToList());
        }
Example #4
0
        protected virtual IEnumerable <VirtualFile> GetFiles(HttpContext context)
        {
            var vpp = HostingEnvironment.VirtualPathProvider;

            if (vpp.DirectoryExists(FolderUrl))
            {
                foreach (VirtualFile file in vpp.GetDirectory(FolderUrl).Files)
                {
                    if (file == null)
                    {
                        continue;
                    }
                    if (FileMasks.Any(m => Regex.IsMatch(file.Name, m.Replace(".", "[.]").Replace("*", ".*") + "$", RegexOptions.Compiled | RegexOptions.IgnoreCase)))
                    {
                        yield return(file);
                    }
                }
            }
        }
Example #5
0
        private void Init()
        {
            VitaNexCore.TryCatch(
                () =>
            {
                Status = CompileStatus.Initializing;

                if (!InputDirectory.Exists)
                {
                    Status        = CompileStatus.Aborted;
                    StatusMessage = "Input directory '" + InputDirectory + "' does not exist.";
                    return;
                }

                var infos = new List <FileInfo>();

                foreach (var file in FileMasks.SelectMany(
                             t => InputDirectory.GetFiles(t, SearchOption.AllDirectories).Where(file => !infos.Contains(file))))
                {
                    infos.Add(file);
                }

                var files = infos.ToArray();
                infos.Clear();

                if (files.Length == 0)
                {
                    Status        = CompileStatus.Aborted;
                    StatusMessage = "No files to compile.";
                    return;
                }

                var refs      = new List <string>();
                var fileNames = new List <string>();

                foreach (var fName in files.Select(t => t.FullName)
                         .Where(fName => !String.IsNullOrEmpty(fName))
                         .Where(fName => !fileNames.Contains(fName)))
                {
                    fileNames.Add(fName);
                }

                foreach (var t in DefaultReferences.Where(t => !String.IsNullOrEmpty(t)).Where(t => !refs.Contains(t)))
                {
                    refs.Add(t);
                }

                foreach (var t in References.Where(t => !String.IsNullOrEmpty(t)).Where(t => !refs.Contains(t)))
                {
                    refs.Add(t);
                }

                var configs = GetConfigFiles();

                if (configs != null)
                {
                    foreach (var t in configs.Select(GetConfigAssemblies)
                             .SelectMany(
                                 asm => asm.Where(t => !String.IsNullOrEmpty(t))
                                 .Where(t => File.Exists(IOUtility.GetSafeFilePath(IOUtility.GetBaseDirectory() + "/" + t, true)))
                                 .Where(t => !refs.Contains(t))))
                    {
                        refs.Add(t);
                    }
                }

                Status     = CompileStatus.Compiling;
                Parameters = new CompilerParameters(
                    refs.ToArray(),
                    IOUtility.GetUnusedFilePath(OutputDirectory.FullName, OutputFileName),
                    Debug)
                {
                    GenerateExecutable = false,
                    WarningLevel       = 4,
                    CompilerOptions    = String.Empty
                };

                foreach (var arg in Arguments)
                {
                    Parameters.CompilerOptions += arg + " ";
                }

                Results = Provider.CompileAssemblyFromFile(Parameters, fileNames.ToArray());

                if (Results.Errors.Count > 0)
                {
                    int errorCount = 0, warningCount = 0;

                    foreach (CompilerError e in Results.Errors)
                    {
                        if (e.IsWarning)
                        {
                            ++warningCount;
                        }
                        else
                        {
                            ++errorCount;
                        }
                    }

                    Errors = new string[Results.Errors.Count];

                    for (var e = 0; e < Results.Errors.Count; e++)
                    {
                        Errors[e] = String.Format(
                            "[{0}][{1}][{2}]: Line {3}, Column {4}\n{5}",
                            Results.Errors[e].IsWarning ? "Warning" : "Error",
                            Results.Errors[e].FileName,
                            Results.Errors[e].ErrorNumber,
                            Results.Errors[e].Line,
                            Results.Errors[e].Column,
                            Results.Errors[e].ErrorText);
                    }

                    StatusMessage = String.Format(
                        "Finished compiling with {0} error{1} and {2} warning{3}",
                        errorCount,
                        errorCount > 1 ? "s" : "",
                        warningCount,
                        warningCount > 1 ? "s" : "");

                    Status = CompileStatus.Completed;
                }
                else
                {
                    StatusMessage = "Finished compiling with no errors or warnings.";
                    Status        = CompileStatus.Completed;
                }
            },
                ex =>
            {
                Status        = CompileStatus.Aborted;
                StatusMessage = ex.Message;
            });

            if (CompiledCallback != null)
            {
                CompiledCallback(Results);
            }
        }
Example #6
0
 public ConfigManager()
 {
     _filemasks = new FileMasks(this);
     ReloadConfig();
 }