Example #1
0
        private void CreateTargetFile(FilePath sourcePath, FilePath targetPath)
        {
            // Create the target file.
            var targetFile = Substitute.For <IFile>();

            targetFile.Exists.Returns(true);
            targetFile.Path.Returns(targetPath);

            // Add the file to lookup data structures.
            SourceFilePaths.Add(sourcePath);
            TargetFiles.Add(targetFile);
            TargetFilePaths.Add(targetPath);
        }
Example #2
0
        public CompilerResults Compile()
        {
            AddCS();
            ParseFilesForCompilerOptions();
            if (SourceFilePaths.Count == 0)
            {
                return(null);
            }

            using (Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider provider = new Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider())
            {
                provider.Supports(GeneratorSupport.Resources);
                CompilerResults results = provider.CompileAssemblyFromFile(Options, SourceFilePaths.ToArray());
                if (!results.Errors.HasErrors)
                {
                    CompiledAssembly = results.CompiledAssembly;
                }
                results.TempFiles.Delete();
                return(results);
            }
        }
Example #3
0
        private void AddCS()
        {
            if (FileStructure == FileStructureType.Folder)
            {
                string[] strArray = Directory.GetFiles(SourcePath, "*.cs", SearchOption.AllDirectories);

                foreach (string s in strArray)
                {
                    SourceFilePaths.Add(s);
                }

                string[] strArray2 = Directory.GetFiles(SourcePath, "*.resx", SearchOption.AllDirectories);

                foreach (string s in strArray2)
                {
                    AddRESX(s);
                }
            }
            else
            {
                SourceFilePaths.Add(SourcePath);
            }
        }
Example #4
0
        bool UserProvidedFileExists(string markupItemPath, CodeDomProvider codeDomProvider)
        {
            string desiredSourceFilePath = Path.ChangeExtension(markupItemPath, "xaml." + codeDomProvider.FileExtension);

            return(SourceFilePaths.Contains(desiredSourceFilePath));
        }
Example #5
0
        private static bool ReadArguments()
        {
            string[] arguments = Environment.GetCommandLineArgs();

            if (arguments.Length <= 1)
            {
                PrintHelp = true;
                return(true);
            }

            for (int argumentIndex = 1; argumentIndex < arguments.Length; argumentIndex++)
            {
                if (arguments[argumentIndex].Equals("-?", StringComparison.OrdinalIgnoreCase) ||
                    arguments[argumentIndex].Equals("/?", StringComparison.OrdinalIgnoreCase) ||
                    arguments[argumentIndex].Equals("-h", StringComparison.OrdinalIgnoreCase) ||
                    arguments[argumentIndex].Equals("/h", StringComparison.OrdinalIgnoreCase) ||
                    arguments[argumentIndex].Equals("-help", StringComparison.OrdinalIgnoreCase) ||
                    arguments[argumentIndex].Equals("/help", StringComparison.OrdinalIgnoreCase))
                {
                    PrintHelp = true;
                    continue;
                }

                if (arguments[argumentIndex].Equals("-b", StringComparison.OrdinalIgnoreCase) ||
                    arguments[argumentIndex].Equals("/b", StringComparison.OrdinalIgnoreCase))
                {
                    if (argumentIndex != arguments.Length - 1)
                    {
                        BasePackageFilePath = arguments[argumentIndex + 1];
                        argumentIndex++;
                        continue;
                    }
                }

                if (arguments[argumentIndex].Equals("-t", StringComparison.OrdinalIgnoreCase) ||
                    arguments[argumentIndex].Equals("/t", StringComparison.OrdinalIgnoreCase))
                {
                    if (argumentIndex != arguments.Length - 1)
                    {
                        TargetPackageFilePaths.Add(arguments[argumentIndex + 1]);
                        argumentIndex++;
                        continue;
                    }
                }

                if (arguments[argumentIndex].Equals("-s", StringComparison.OrdinalIgnoreCase) ||
                    arguments[argumentIndex].Equals("/s", StringComparison.OrdinalIgnoreCase))
                {
                    if (argumentIndex != arguments.Length - 1)
                    {
                        SourceFilePaths.AddRange(arguments[argumentIndex + 1].Split(';'));
                        argumentIndex++;
                        continue;
                    }
                }

                if (arguments[argumentIndex].Equals("-r", StringComparison.OrdinalIgnoreCase) ||
                    arguments[argumentIndex].Equals("/r", StringComparison.OrdinalIgnoreCase))
                {
                    if (argumentIndex != arguments.Length - 1)
                    {
                        RemoveFileNames.AddRange(arguments[argumentIndex + 1].Split(';'));
                        argumentIndex++;
                        continue;
                    }
                }
            }

            try {
                if (BasePackageFilePath != null)
                {
                    BasePackageFilePath = Path.GetFullPath(BasePackageFilePath);
                }
            } catch (Exception e) {
                throw new Exception("Failed to parse argument '-b'", e);
            }

            try {
                for (int targetPackageFilePathIndex = 0; targetPackageFilePathIndex < TargetPackageFilePaths.Count; targetPackageFilePathIndex++)
                {
                    TargetPackageFilePaths[targetPackageFilePathIndex] = Path.GetFullPath(TargetPackageFilePaths[targetPackageFilePathIndex]);
                    new FileInfo(TargetPackageFilePaths[targetPackageFilePathIndex]);
                }
            } catch (Exception e) {
                throw new Exception("Failed to parse argument '-t'", e);
            }

            try {
                for (int sourceFilePathIndex = 0; sourceFilePathIndex < SourceFilePaths.Count; sourceFilePathIndex++)
                {
                    SourceFilePaths[sourceFilePathIndex] = Path.GetFullPath(SourceFilePaths[sourceFilePathIndex]);
                    FileInfo sourceFileInfo = new FileInfo(SourceFilePaths[sourceFilePathIndex]);

                    if (!sourceFileInfo.Exists)
                    {
                        Console.Error.WriteLine("Cannot find source file '" + sourceFileInfo.FullName + "'.");
                        return(false);
                    }
                }
            } catch (Exception e) {
                throw new Exception("Failed to parse argument '-s'", e);
            }

            return(true);
        }