public bool install()
        {
            if (ExeFile.fileExists().isFalse())
            {
                "Installing {0}".info(ToolName);
                var downloadedFile = localDownloadsDir.pathCombine(Install_File);
                "Downloaded file location: {0}".info(downloadedFile);
                "Install_Dir: {0}".info(Install_Dir);

                var zipFile = Install_Dir.pathCombine("CLRProfiler.zip");
                if (zipFile.fileExists().isFalse())
                {
                    //extract from CLRProfiler4.EXE
                    "Extracting CLRProfiler4.EXE".info();
                    var arguments = "/t:\"{0}\"".format(Install_Dir);
                    var process   = downloadedFile.startProcess(arguments);
                    process.WaitForExit();
                }
                "Unziping CLRProfiler.zip".info();

                zipFile.unzip(Install_Dir);
                "Unzipping complete".info();
            }
            return(ExeFile.fileExists());
        }
 public Process start()
 {
     if (install())
     {
         return(Install_Dir.pathCombine("procexp.exe").startProcess());
     }
     return(null);
 }
예제 #3
0
 public Python_Install()
 {
     Install_Uri  = "http://www.python.org/ftp/python/3.2.3/python-3.2.3.msi".uri();
     Install_File = "python-3.2.3.msi";
     Install_Dir  = @"C:\Python32\";
     Executable   = Install_Dir.pathCombine("python.exe");
     startInstaller_FromMsi_Web();
 }
예제 #4
0
 public API_BlindElephant()
 {
     config("Blind Elephant", "Blind Elephant 2.0", "");
     Install_Uri      = "https://blindelephant.svn.sourceforge.net/svnroot/blindelephant/trunk".uri();
     BlindElephant_Py = Install_Dir.pathCombine(@"src/blindelephant/BlindElephant.py");
     Python_Exe       = @"C:\Python27\python.exe";
     ShowConsoleMessageInLogViewer = true;
 }
예제 #5
0
 public API_Fiddler()
 {
     config("Fiddler", "Fiddler 2", "Fiddler2Setup.exe");
     Install_Uri   = "http://www.getfiddler.com/dl/Fiddler2Setup.exe".uri();    //http://www.fiddler2.com/dl/Fiddler2BetaSetup.exe".uri();
     Fiddler_Exe   = Install_Dir.pathCombine("fiddler.exe");
     Install_Dir   = @"C:\Program Files\Fiddler2";
     Uninstall_Exe = Install_Dir.pathCombine("uninst.exe");
 }
        public bool uninstall()
        {
            var uninstallExe = Install_Dir.pathCombine(@"\uninstall\helper.exe");

            Processes.startProcess(uninstallExe, "");
            // check if this also deletes the firefox folder
            return(isInstalled());
        }
예제 #7
0
 public API_WebScarab()
 {
     config("WebScarab", "WebScarab 2010-08-20", "webscarab-one-20100820-1632.jar");
     Install_Uri    = "http://dawes.za.net/rogan/webscarab/webscarab-one-20100820-1632.jar".uri();
     WebScarab_Jar  = Install_Dir.pathCombine(Install_File);
     InputSimulator = new API_InputSimulator();
     install();
 }
예제 #8
0
 public Process start()
 {
     if (install())
     {
         return(Install_Dir.pathCombine("CefSharp-1.19.0\\CefSharp.Wpf.Example.exe").startProcess());
     }
     return(null);
 }
 public WinMerge(bool installNow)
 {
     config("WinMerge", "WinMerge v2.12.4", "WinMerge-2.12.4-exe.zip");
     this.Install_Uri = "http://downloads.sourceforge.net/winmerge/WinMerge-2.12.4-exe.zip".uri();
     this.Executable  = Install_Dir.pathCombine(@"WinMerge-2.12.4-exe\WinMergeU.exe");
     if (installNow)
     {
         install();
     }
 }
 public LessMsi_Install(bool installNow)
 {
     config("LessMsi", "LessMsi.1.0.8", "lessmsi-v1.0.8");
     Install_Uri = "http://lessmsi.googlecode.com/files/lessmsi-v1.0.8.zip".uri();
     Executable  = Install_Dir.pathCombine("lessmsi.exe");
     if (installNow)
     {
         install();
     }
 }
예제 #11
0
 public virtual bool unInstall()
 {
     if (Install_Dir.valid() && Install_Dir.dirExists())
     {
         "Uninstalling tool {0} by deleting folder {1}".debug(ToolName, Install_Dir);
         Files.deleteFolder(Install_Dir, true);
         return(isInstalled().isFalse());
     }
     return(false);
 }
예제 #12
0
 public void config(string toolName, string installFile, Uri installUri, string pathToExecutable)
 {
     ToolName     = toolName;
     Install_Dir  = ToolsDir.pathCombine(toolName);
     Install_Uri  = installUri;
     Install_File = installFile;
     if (pathToExecutable.valid())
     {
         Executable = Install_Dir.pathCombine(pathToExecutable);
     }
 }
예제 #13
0
 public _7_Zip(bool installNow)
 {
     config("7-Zip 9.2.0", "7-Zip", "7z920.exe");
     Install_Uri = "http://downloads.sourceforge.net/project/sevenzip/7-Zip/9.20/7z920.exe?r=&ts=1337856882&use_mirror=heanet".uri();
     Install_Dir = getProgramFiles().pathCombine("7-Zip");
     Executable  = Install_Dir.pathCombine("7z.exe");
     if (installNow)
     {
         install();
     }
 }
예제 #14
0
 public Python_Install()
 {
     /*config("Python-3.2.3",
      *         "http://www.python.org/ftp/python/3.2.3/python-3.2.3.msi".uri(),
      *         "SourceDir\\IronPython 2.7\\ipy.exe");
      */
     Install_Uri  = "http://www.python.org/ftp/python/3.2.3/python-3.2.3.msi".uri();
     Install_File = "python-3.2.3.msi";
     Install_Dir  = @"C:\Python32\";
     Executable   = Install_Dir.pathCombine("python.exe");
     startInstaller_FromMsi_Web();
 }
예제 #15
0
        public NodeJS_Exe_Installer(bool installNow)
        {
            ToolName    = "NodeJS_Exe";
            Install_Uri = "http://nodejs.org/dist/v0.6.18/node.exe".uri();
            Install_Dir = ToolsDir.pathCombine(ToolName);
            Executable  = Install_Dir.pathCombine("node.exe");

            if (installNow)
            {
                install();
            }
        }
예제 #16
0
 public virtual bool isInstalled(bool showLogMessage)
 {
     if (Install_Dir.dirExists())
     {
         "{0} tool is installed because installation dir was found: {1}".debug(ToolName, Install_Dir);
         return(true);
     }
     if (showLogMessage)
     {
         "{0} tool is NOT installed because installation dir was NOT found: {0}".debug(ToolName, Install_Dir);
     }
     return(false);
 }
예제 #17
0
 public virtual bool isInstalled(bool showLogMessage)
 {
     if (Install_Dir.dirExists() && Executable.fileExists())     // we need both or some install sequences will fail
     {
         "{0} tool is installed because installation and main executable dir was found: {1} : {2}".debug(ToolName, Install_Dir, Executable);
         return(true);
     }
     if (showLogMessage)
     {
         "{0} tool is NOT installed because installation dir or main Executable was NOT found: {1} : {2}".debug(ToolName, Install_Dir, Executable);
     }
     return(false);
 }
 public LinqPad(bool installNow)
 {
     config("LinqPad",
            "LinqPad v3.5",
            @"C:\Program Files\LinqPad\",
            "LINQPadSetup.exe",
            "http://www.linqpad.net/GetFile.aspx?LINQPadSetup.exe".uri());
     Executable = Install_Dir.pathCombine("LINQPad.exe");
     if (installNow)
     {
         install();
     }
 }
예제 #19
0
 public void config()
 {
     if (!Install_Dir.valid())
     {
         Install_Dir = toolsDir.pathCombine(ToolName);
     }
     if (!Executable.valid() && Executable_Name.valid())
     {
         Executable = Install_Dir.pathCombine(Executable_Name);
     }
     if (!Install_File.valid() && Install_Uri.notNull() && this.Install_Uri.Segments.size() > 0)
     {
         Install_File = Install_Uri.Segments.Last();
     }
 }
 public LinqPad_Installer(bool installNow)
 {
     /*config("LinqPad",
      *        "LinqPad v3.5",
      *        @"C:\Program Files\LinqPad\",
      *        "LINQPadSetup.exe",
      *        "http://www.linqpad.net/GetFile.aspx?LINQPadSetup.exe".uri());
      *
      */
     config("_LinqPad", "LinqPad.4.0", "LINQPad4.zip");
     Install_Uri = "http://www.linqpad.net/GetFile.aspx?LINQPad4.zip".uri();
     Executable  = Install_Dir.pathCombine("LINQPad.exe");
     if (installNow)
     {
         install();
     }
 }
예제 #21
0
        public virtual bool installFromZip_Web()
        {
            if (Install_Dir.valid().isFalse())
            {
                "Install_Dir is not set, aborting installation".error();
                return(false);
            }
            Action <string> onDownload =
                (zipFile) => {
                if (zipFile.fileExists())
                {
                    new zipUtils().unzipFile(zipFile, Install_Dir);
                }
            };

            return(install(onDownload));
        }
예제 #22
0
        public virtual bool installFromWeb_Jar()
        {
            if (Install_Dir.valid().isFalse())
            {
                "Install_Dir is not set, aborting installation".error();
                return(false);
            }
            Action <string> onDownload =
                (jarFile) => {
                if (jarFile.fileExists())
                {
                    Install_Dir.createDir();
                    Files.MoveFile(jarFile, Install_Dir);
                }
            };

            return(install(onDownload));
        }
예제 #23
0
 public bool install()
 {
     if (this.isInstalled().isFalse())
     {
         "[API_BlindElephant] Starting Blind Elephant installation process".info();
         Install_Dir.createDir();
         var svnUrl        = Install_Uri.str();
         var targetFolder  = Install_Dir;
         var svnMappedUrls = SvnApi.HttpMode.getSvnMappedUrls(svnUrl, true);
         //return svnMappedUrls;
         foreach (var svnMappedUrl in svnMappedUrls)
         {
             "   * Downloading: {0}".info(WebEncoding.urlDecode(svnMappedUrl.FullPath.Replace(svnUrl, "")));
             SvnApi.HttpMode.download(svnMappedUrl, svnUrl, targetFolder);
         }
         //var fiddlerInstaller = this.installerFile();
     }
     return(BlindElephant_Py.fileExists());
 }
예제 #24
0
 public void delete_Install_Dir()
 {
     if (Install_Dir.valid())
     {
         if (Install_Dir.contains(PublicDI.config.O2TempDir.directoryName()))
         {
             "[delete_Install_Dir] deleting folder: {0}".info(Install_Dir);
             Files.deleteFolder(Install_Dir, true);
         }
         else
         {
             "[delete_Install_Dir] deleting is only supported for folders inside the O2 Temp dir: {0}".error(Install_Dir);
         }
     }
     else
     {
         "[delete_Install_Dir] Install_Dir value was not set".error();
     }
 }
        public void download_Update_and_Install()
        {
            //ensure this dll is loaded in memory
            "FluentSharp.NGit.dll".assembly().Location.info();

            //use the O2 Fork:
            config("SosNet",
                   "https://github.com/o2platform/O2_Fork_SoS_Net.git".uri(),
                   "Sos.Net.exe");
            var codeDir = this.Install_Dir.pathCombine("O2_Fork_SoS_Net");

            if (codeDir.dirExists().isFalse())
            {
                this.Install_Uri.git_Clone(codeDir);
            }
            else
            {
                codeDir.git_Pull();
                var solutionFile = codeDir.pathCombine("SOS.Net.sln");

                solutionFile.build().waitForBuildCompletion().ConsoleOut.str().info();
                Files.copyFilesFromDirectoryToDirectory(codeDir.pathCombine(@"SOS.Net\bin\Debug"), this.Install_Dir);

                //show.info(assemblies);
            }

            /*
             * //Previously we use the original version from bitbucket
             * config("SosNet",
             *         "https://bitbucket.org/grozeille/sosnet/downloads/SOS.Net.zip".uri(),
             *         "Sos.Net.exe");
             * installFromZip_Web();
             */
            //get PssCor4.dll and sosex.dll windb extensions

            var x86_Folder = this.Install_Dir.pathCombine("x86").createDir();
            var x64_Folder = this.Install_Dir.pathCombine("x64").createDir();

            //Psscor4
            var psscorDir  = this.Install_Dir.pathCombine("Psscor4").createDir();
            var pssCor4Zip = Install_Dir.pathCombine("Psscor4.zip");

            if (psscorDir.fileExists().isFalse())
            {
                if (pssCor4Zip.fileExists().isFalse())
                {
                    var pssCor4Exe = "http://download.microsoft.com/download/2/C/E/2CE778CF-3A42-48FE-9EFF-4C76B4ECB147/Psscor4.EXE".download();

                    pssCor4Exe.startProcess("/Q /T:\"{0}\"".format(Install_Dir))
                    .WaitForExit();
                }
                var pssCor4_x86 = psscorDir.pathCombine(@"x86\x86\psscor4.dll");
                var pssCor4_x64 = psscorDir.pathCombine(@"amd64\amd64\psscor4.dll");
                if (pssCor4_x86.fileExists().isFalse())
                {
                    if (pssCor4Zip.fileExists())
                    {
                        pssCor4Zip.unzip(Install_Dir);
                        Files.copy(pssCor4_x86, x86_Folder);
                        Files.copy(pssCor4_x86.replace(".dll", ".pdb"), x86_Folder);
                        Files.copy(pssCor4_x64, x64_Folder);
                        Files.copy(pssCor4_x64.replace(".dll", ".pdb"), x64_Folder);
                    }
                    else
                    {
                        "[psscor4 install], could not find psscor4  zip file: {0}".error(pssCor4Zip);
                    }
                }
            }

            //sosex
            var sosEx = x86_Folder.pathCombine("sosex.dll");

            if (sosEx.fileExists().isFalse())
            {
                var sos32_zip = "http://www.stevestechspot.com/downloads/sosex_32.zip".download();
                sos32_zip.unzip(x86_Folder);


                var sos64_zip = "http://www.stevestechspot.com/downloads/sosex_64.zip".download();
                sos64_zip.unzip(x64_Folder);
            }
            //this.showInfo();

            /*Action<string, string,Uri> install = (installFolder, installFile, installUri)=>
             *      {
             *              config("DebugAnalyzer", "DebugAnalyzer v1.2.5", installFile);
             *      this.Install_Uri = installUri;
             *      this.Executable = this.Install_Dir.pathCombine(installFolder + @"\DebugAnalyzer.exe");
             *      installFromZip_Web();
             * };
             *
             * install	("x86", "DAx86.zip", "http://www.debuganalyzer.net/file.axd?file=DAx86.zip".uri());
             * install	("x64", "DAx64.zip", "http://www.debuganalyzer.net/file.axd?file=DAx64.zip".uri());
             * //install 2.0 version
             * //install("Acorns.Hawkeye.125.N2", "Acorns.Hawkeye.125.N2.zip", "http://download.codeplex.com/Download/Release?ProjectName=hawkeye&DownloadId=196206&FileTime=129391670111230000&Build=18924".uri());
             * //install 4.0 version
             * //install("Acorns.Hawkeye.125.N4", "Acorns.Hawkeye.125.N4.zip", "http://download.codeplex.com/Download/Release?ProjectName=hawkeye&DownloadId=196207&FileTime=129391675391630000&Build=18924".uri());
             */
        }
예제 #26
0
 public API_Nikto()
 {
     config("Nikto", "Nikto 2.1.3", "nikto-2.1.3.zip");
     Nikto_Script  = Install_Dir.pathCombine(@"\nikto-2.1.3\nikto.pl");
     OnConsoleData = default_OnConsoleData;
 }
 public API_Eclipse()
 {
     config("Eclipse", "Eclipse Helios SR1", "eclipse-java-helios-SR1-win32.zip");
     Eclipse_Exe = Install_Dir.pathCombine(@"\eclipse\eclipse.exe");
 }
예제 #28
0
 public string executableFullPath()
 {
     return(Install_Dir.pathCombine(Executable_Name));
 }