Ejemplo n.º 1
0
        private static int Main(string[] args)
        {
            SubProcess.EnableHighDPISupport();

            string FindArg(string key)
            {
                return(Array.Find(args, arg => arg.StartsWith(key, StringComparison.OrdinalIgnoreCase)).Substring(key.Length));
            }

            const string typePrefix     = "--type=";
            const string parentIdPrefix = "--host-process-id=";

            if (!int.TryParse(FindArg(parentIdPrefix), out int parentId))
            {
                return(0);
            }

            Task.Factory.StartNew(() => KillWhenHung(parentId), TaskCreationOptions.LongRunning);

            if (FindArg(typePrefix) == "renderer")
            {
                using SubProcess subProcess = new SubProcess(null, args);
                return(subProcess.Run());
            }
            else
            {
                return(SubProcess.ExecuteProcess(args));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// To show the PDF Preview
        /// </summary>
        public void PdfPreview()
        {
            string outName = CreatePreview();

            if (outName != string.Empty)
            {
                SubProcess.Run(Param.Value[Param.OutputPath], outName);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Uses Sword Output Execute Process
        /// </summary>
        protected void SwordOutputBuildProcess(string processFolder, string swordOutputPath, string[] osisFilesList, string projectPath)
        {
            const string creator       = "osis2mod";
            string       moreArguments = "-z -N -v KJV";

            foreach (var osisFile in osisFilesList)
            {
                var args = string.Format(@"""{0}"" ""{1}"" {2}", swordOutputPath, osisFile, moreArguments);

                SubProcess.Run(processFolder, creator, args, true);
                moreArguments = "-a -z -N -v KJV";
            }
        }
Ejemplo n.º 4
0
        private void DisplayOutput(string outputDirectory)
        {
            const bool noWait = false;

            if (_isUnixOS)
            {
                SubProcess.Run("", "nautilus", Common.HandleSpaceinLinuxPath(outputDirectory), noWait);
            }
            else
            {
                SubProcess.Run(outputDirectory, "explorer.exe", outputDirectory, noWait);
            }
        }
Ejemplo n.º 5
0
        private static void DisplayOutput(PublicationInformation projInfo)
        {
            var        output = new DictionaryForMIDsStreamWriter(projInfo);
            const bool noWait = false;

            if (_isUnixOS)
            {
                SubProcess.Run("", "nautilus", Common.HandleSpaceinLinuxPath(output.Directory), noWait);
            }
            else
            {
                SubProcess.Run(output.Directory, "explorer.exe", output.Directory, noWait);
            }
        }
Ejemplo n.º 6
0
        void _Start()
        {
            _fault = null;

            var startInfo = new ProcessStartInfo();

            startInfo.FileName               = Command;
            startInfo.UseShellExecute        = false;
            startInfo.Arguments              = Arguments;
            startInfo.RedirectStandardOutput = true;
            startInfo.RedirectStandardError  = true;

            logger.Debug("_Start(): Running command " + Command + " with arguments " + Arguments);

            try
            {
                var p = SubProcess.Run(Command, Arguments, Timeout);

                var stdout = p.StdOut.ToString();
                var stderr = p.StdErr.ToString();

                _fault = new Fault();
                _fault.detectionSource = "RunCommand";
                _fault.folderName      = "RunCommand";
                _fault.collectedData.Add(new Fault.Data("stdout", Encoding.ASCII.GetBytes(stdout)));
                _fault.collectedData.Add(new Fault.Data("stderr", Encoding.ASCII.GetBytes(stderr)));

                if (p.Timeout)
                {
                    _fault.description = "Process failed to exit in alotted time.";
                    _fault.type        = FaultType.Fault;
                }
                else if (FaultOnNonZeroExit && p.ExitCode != 0)
                {
                    _fault.description = "Process exited with code {0}.".Fmt(p.ExitCode);
                    _fault.type        = FaultType.Fault;
                }
                else
                {
                    _fault.description = stdout;
                    _fault.type        = FaultType.Data;
                }
            }
            catch (Exception ex)
            {
                throw new PeachException("Could not run command '" + Command + "'.  " + ex.Message + ".", ex);
            }
        }
Ejemplo n.º 7
0
    public static string PackTool(string name, string sourceDirectory, string outputDirectory, string version)
    {
        var nuspecFile = Path.Combine(outputDirectory, name + ".nuspec");

        using (var w = new StreamWriter(nuspecFile))
        {
            w.WriteLine(@"<?xml version=""1.0""?>
<package >
  <metadata>
    <id>" + name + @"</id>
    <version>" + version + @"</version>
    <authors>sidiandi</authors>
    <owners>sidiandi</owners>
    <licenseUrl>https://opensource.org/licenses/BSD-3-Clause</licenseUrl>
    <projectUrl>https://github.com/sidiandi/sidi.project</projectUrl>
    <iconUrl>https://github.com/sidiandi/sidi.project/icon.ico</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Tool</description>
    <releaseNotes></releaseNotes>
    <copyright>Copyright 2017 https://github.com/sidiandi</copyright>
    <tags></tags>
    <dependencies>
    </dependencies>
  </metadata>
	<files>
		<file src="         + SubProcess.Quote(sourceDirectory + @"\**\*") + @" target=""tools"" />
	</files>
</package>

");
        }

        string package = null;
        var    p       = new List <string>();

        p.AddRange(new[] { "pack", nuspecFile, "-OutputDirectory", outputDirectory });
        if (!String.IsNullOrEmpty(version))
        {
            p.AddRange(new[] { "-Version", version });
        }

        var nuget = new SubProcess("nuget", p.ToArray());

        nuget.Run().Wait();
        package = nuget.Output.RegexGet(@"Successfully created package '([^']+)'.");
        Console.WriteLine(package);
        return(package);
    }
Ejemplo n.º 8
0
    public static string Pack(TaskLoggingHelper log, string csProjFile, string outputDirectory, string version)
    {
        string package = null;
        var    p       = new List <string>();

        p.AddRange(new[] { "pack", csProjFile, "-OutputDirectory", outputDirectory });
        if (!String.IsNullOrEmpty(version))
        {
            p.AddRange(new[] { "-Version", version });
        }

        var nuget = new SubProcess(log, "nuget", p.ToArray());

        nuget.Run().Wait();
        package = nuget.Output.RegexGet(@"Successfully created package '([^']+)'.");
        return(package);
    }
Ejemplo n.º 9
0
        private static int Main(string[] args)
        {
            SubProcess.EnableHighDPISupport();

            const string typePrefix = "--type=";
            string       type       = Array.Find(args, arg => arg.StartsWith(typePrefix, StringComparison.OrdinalIgnoreCase)).Substring(typePrefix.Length);

            if (type == "renderer")
            {
                using (SubProcess subProcess = new SubProcess(args)){
                    return(subProcess.Run());
                }
            }
            else
            {
                return(SubProcess.ExecuteProcess());
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Entry point for epub converter
        /// </summary>
        /// <param name="projInfo">values passed including xhtml and css names</param>
        /// <returns>true if succeeds</returns>
        public bool Export(PublicationInformation projInfo)
        {
            Common.SetupLocalization();
            if (projInfo == null)
            {
                return(false);
            }
            const bool success = true;

            #region Set up progress reporting
#if (TIME_IT)
            DateTime dt1 = DateTime.Now;                                        // time this thing
#endif
            var myCursor  = Common.UseWaitCursor();
            var curdir    = Environment.CurrentDirectory;
            var inProcess = Common.SetupProgressReporting(20, "Export " + ExportType);
            #endregion Set up progress reporting
            PreExportProcess preProcessor;
            EpubToc          epubToc;
            var bookId = SetupConversion(projInfo, inProcess, out preProcessor, out epubToc);
            _toc2Html5 = LoadToc2Html5Xslt();

            string[] langArray;
            var      outputFolder = PreprocessXhtml(projInfo, inProcess, preProcessor, out langArray);

            string mergedCss;
            string defaultCss;
            string tempCssFile;
            // float: is not in the list like it is in the Epub.
            CssRemoved = new List <string> {
                "string-set:", "-moz-column-", "column-fill:", "-ps-outline-", "-ps-fixed-line-height:", "content: leader("
            };
            var tempFolder = ProcessingCss(projInfo, inProcess, preProcessor, out mergedCss, out defaultCss, out tempCssFile);

            FixIssuesWithFlexXhtml(projInfo, preProcessor, langArray, inProcess);

            AddNavitation(inProcess, preProcessor);

            var frontMatter = AddFrontMatter(inProcess, preProcessor, tempFolder);

            List <string> splitFiles;
            Common.SplitEveryEntry = true;
            var htmlFiles = SplitIntoSections(projInfo, inProcess, frontMatter, preProcessor, defaultCss, langArray, out splitFiles);

            var contentFolder = CreateContentStructure(projInfo, inProcess, tempFolder);

            AddEndNotesIfNecessary(inProcess, contentFolder, preProcessor, splitFiles);
            if (!FontEmbedding(projInfo, inProcess, langArray, mergedCss, contentFolder, curdir, myCursor))
            {
                return(false);
            }

            CopyContentToEpubFolder(inProcess, mergedCss, defaultCss, htmlFiles, contentFolder);

            InsertChapterLinks(inProcess, contentFolder);

            UpdateHyperlinks(inProcess, contentFolder);

            ProcessImages(inProcess, tempFolder, contentFolder);

            CreateEpubManifest(projInfo, inProcess, contentFolder, bookId, epubToc, tempCssFile);

            var epub3Path = MakeCopyOfEpub2(inProcess, projInfo);

            SemanticDomainIndex(inProcess, contentFolder, epub3Path);

            var html5Folder = CreateHtml5(projInfo, inProcess, epub3Path);

            var outputPathWithFileNameHtml5 = PackageHtml5(projInfo, inProcess, html5Folder);

            CleanUp(inProcess, outputPathWithFileNameHtml5);

            CreateArchiveSubmission(projInfo, inProcess, epub3Path);

            FinalCleanUp(inProcess, outputPathWithFileNameHtml5);

            #region Close Reporting
            inProcess.Close();

            Environment.CurrentDirectory = curdir;
            Cursor.Current = myCursor;
            #endregion Close Reporting
            if (Common.IsUnixOS())
            {
                SubProcess.Run("", "nautilus", Common.HandleSpaceinLinuxPath(projInfo.ProjectPath), false);
            }
            else
            {
                SubProcess.Run(projInfo.ProjectPath, "explorer.exe", projInfo.ProjectPath, false);
            }

            return(success);
        }