コード例 #1
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        public static int Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ErrorReportForm.SetupMonitoring(new Uri("https://0install.de/error-report/"));
            NetUtils.ApplyProxy();

            if (WindowsUtils.IsWindows)
            {
                if (WindowsUtils.AttachConsole())
                {
                    return((int)RunCliWindows(args));
                }
                else
                {
                    return((int)RunGui(args));
                }
            }
            else if (UnixUtils.HasGui)
            {
                return((int)RunGui(args));
            }
            else
            {
                return((int)RunCli(args));
            }
        }
コード例 #2
0
        /// <summary>
        /// Common initialization code to be called by every Frontend executable right after startup.
        /// </summary>
        public static void Init()
        {
            // Encode installation path into mutex name to allow instance detection during updates
            string mutexName = "mutex-" + Locations.InstallBase.GetHashCode();

            if (AppMutex.Probe(mutexName + "-update"))
            {
                Environment.Exit(999);
            }
            AppMutex.Create(mutexName);

            if (WindowsUtils.IsWindows && !Locations.IsPortable && !StoreUtils.PathInAStore(Locations.InstallBase))
            {
                try
                {
                    RegistryUtils.SetSoftwareString("Zero Install", "InstallLocation", Locations.InstallBase);
                    RegistryUtils.SetSoftwareString(@"Microsoft\PackageManagement", "ZeroInstall", Path.Combine(Locations.InstallBase, "ZeroInstall.OneGet.dll"));
                }
                catch (IOException)
                {}
                catch (UnauthorizedAccessException)
                {}
            }

            NetUtils.ApplyProxy();
            if (!WindowsUtils.IsWindows7)
            {
                NetUtils.TrustCertificates(SyncIntegrationManager.DefaultServerPublicKey);
            }
        }
コード例 #3
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        private static int Main(string[] args)
        {
            NetUtils.ApplyProxy();

            try
            {
                var command = new CaptureCommand(args, new CliTaskHandler());
                return((int)command.Execute());
            }
            #region Error hanlding
            catch (OperationCanceledException)
            {
                return((int)ExitCode.UserCanceled);
            }
            catch (ArgumentException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (OptionException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (InvalidOperationException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (InvalidDataException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidData);
            }
            catch (IOException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.IOError);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.AccessDenied);
            }
            catch (NotSupportedException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.NotSupported);
            }
            #endregion
        }
コード例 #4
0
        [STAThread] // Required for WinForms
        private static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ErrorReportForm.SetupMonitoring(new Uri("https://0install.de/error-report/"));
            NetUtils.ApplyProxy();

            var openPgp = OpenPgpFactory.CreateDefault();

            if (args == null || args.Length == 0)
            {
                Application.Run(new WelcomeForm(openPgp));
            }
            else
            {
                try
                {
                    var files = ArgumentUtils.GetFiles(args, "*.xml");
                    if (files.Count == 1)
                    {
                        string path = files.First().FullName;
                        Application.Run(new MainForm(FeedEditing.Load(path), openPgp));
                    }
                    else
                    {
                        MassSignForm.Show(files);
                    }
                }
                #region Error handling
                catch (ArgumentException ex)
                {
                    Msg.Inform(null, ex.Message, MsgSeverity.Warn);
                }
                catch (IOException ex)
                {
                    Msg.Inform(null, ex.Message, MsgSeverity.Warn);
                }
                catch (UnauthorizedAccessException ex)
                {
                    Msg.Inform(null, ex.Message, MsgSeverity.Warn);
                }
                catch (InvalidDataException ex)
                {
                    Msg.Inform(null, ex.Message + (ex.InnerException == null ? "" : Environment.NewLine + ex.InnerException.Message), MsgSeverity.Warn);
                }
                #endregion
            }
        }
コード例 #5
0
    /// <summary>
    /// Common initialization code to be called by every Zero Install executable right after startup.
    /// </summary>
    public static void Init()
    {
        AppMutex.Create(ZeroInstallEnvironment.MutexName());
        AppMutex.Create(ZeroInstallEnvironment.LegacyMutexName());
        if (AppMutex.Probe(ZeroInstallEnvironment.UpdateMutexName()) || AppMutex.Probe(ZeroInstallEnvironment.LegacyUpdateMutexName()))
        {
            Environment.Exit(999);
        }

        if (UILanguage != null)
        {
            Languages.SetUI(UILanguage);
        }

        ProcessUtils.SanitizeEnvironmentVariables();
        NetUtils.ApplyProxy();
        ServicePointManager.DefaultConnectionLimit = 16;
    }
コード例 #6
0
        [STAThread] // Required for WinForms
        private static void Main(string[] args)
        {
            ProcessUtils.SanitizeEnvironmentVariables();
            NetUtils.ApplyProxy();

            WindowsUtils.SetCurrentProcessAppID("ZeroInstall.Publishing");
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ErrorReportForm.SetupMonitoring(new Uri("https://0install.de/error-report/"));

            var openPgp = OpenPgp.Signing();

            if (args.Length == 0)
            {
                Application.Run(new WelcomeForm(openPgp));
            }
            else
            {
                try
                {
                    var files = Paths.ResolveFiles(args, "*.xml");
                    if (files.Count == 1)
                    {
                        string path = files.First().FullName;
                        Application.Run(new MainForm(FeedEditing.Load(path), openPgp));
                    }
                    else
                    {
                        MassSignForm.Show(files);
                    }
                }
                #region Error handling
                catch (Exception ex) when(ex is ArgumentException or IOException or InvalidDataException)
                {
                    Msg.Inform(null, ex.GetMessageWithInner(), MsgSeverity.Warn);
                }
                catch (Exception ex) when(ex is UnauthorizedAccessException)
                {
                    Msg.Inform(null, ex.Message, MsgSeverity.Error);
                }
                #endregion
            }
        }
コード例 #7
0
        /// <summary>
        /// Common initialization code to be called by every Frontend executable right after startup.
        /// </summary>
        public static void Init()
        {
            // Encode installation path into mutex name to allow instance detection during updates
            string mutexName = "mutex-" + Locations.InstallBase.GetHashCode();

            if (AppMutex.Probe(mutexName + "-update"))
            {
                Environment.Exit(999);
            }
            AppMutex.Create(mutexName);

            if (WindowsUtils.IsWindows && UILanguage != null)
            {
                Languages.SetUI(UILanguage);
            }
            if (!WindowsUtils.IsWindows7)
            {
                NetUtils.TrustCertificates(SyncIntegrationManager.DefaultServerPublicKey);
            }
            NetUtils.ApplyProxy();
        }
コード例 #8
0
        [STAThread] // Required for WinForms
        private static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            ErrorReportForm.SetupMonitoring(new Uri("https://0install.de/error-report/"));
            NetUtils.ApplyProxy();

            if (args == null)
            {
                args = new string[0];
            }
            if (args.Length < 3 || args.Length > 4)
            {
                Msg.Inform(null, string.Format(Resources.WrongNoArguments, "0update-win SOURCE-PATH NEW-VERSION TARGET-PATH [--rerun|--restart-central]"), MsgSeverity.Error);
                return;
            }
            bool rerun          = args.Contains("--rerun");
            bool restartCentral = args.Contains("--restart-central");

            try
            {
                var updateProcess = new UpdateProcess(args[0], args[1], args[2]);
                Application.Run(new MainForm(updateProcess, rerun, restartCentral));
            }
            #region Error handling
            catch (IOException ex)
            {
                Msg.Inform(null, ex.Message, MsgSeverity.Error);
            }
            catch (UnauthorizedAccessException ex)
            {
                Msg.Inform(null, ex.Message, MsgSeverity.Error);
            }
            catch (NotSupportedException ex)
            {
                Msg.Inform(null, ex.Message, MsgSeverity.Error);
            }
            #endregion
        }
コード例 #9
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        private static int Main(string[] args)
        {
            NetUtils.ApplyProxy();

            // Automatically show help for missing args
            if (args == null)
            {
                args = new string[0];
            }
            if (args.Length == 0)
            {
                args = new[] { "--help" }
            }
            ;

            try
            {
                using (var run = new PublishRun(args))
                    return((int)run.Execute());
            }
            #region Error hanlding
            catch (OperationCanceledException)
            {
                return((int)ExitCode.UserCanceled);
            }
            catch (ArgumentException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (OptionException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (WebException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.WebError);
            }
            catch (InvalidDataException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidData);
            }
            catch (IOException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.IOError);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.AccessDenied);
            }
            catch (DigestMismatchException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.DigestMismatch);
            }
            catch (KeyNotFoundException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (WrongPassphraseException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (NotSupportedException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.NotSupported);
            }
            #endregion
        }
    }
コード例 #10
0
 /// <summary>
 /// Common initialization code to be called by every Bootstrap executable right after startup.
 /// </summary>
 public static void Init()
 {
     ProcessUtils.SanitizeEnvironmentVariables();
     NetUtils.ApplyProxy();
     NetUtils.ConfigureTls();
 }
コード例 #11
0
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        private static int Main(string[] args)
        {
            ProcessUtils.SanitizeEnvironmentVariables();
            NetUtils.ApplyProxy();

            // Automatically show help for missing args
            if (args.Length == 0)
            {
                args = new[] { "--help" }
            }
            ;

            try
            {
                using var handler = new AnsiCliTaskHandler();
                var command = (args.FirstOrDefault() == "capture")
                    ? (ICommand) new CaptureCommand(args.Skip(1), handler)
                    : new PublishCommand(args, handler);
                return((int)command.Execute());
            }
            #region Error hanlding
            catch (OperationCanceledException)
            {
                return((int)ExitCode.UserCanceled);
            }
            catch (ArgumentException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (OptionException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (WebException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.WebError);
            }
            catch (InvalidDataException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidData);
            }
            catch (IOException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.IOError);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.AccessDenied);
            }
            catch (DigestMismatchException ex)
            {
                Log.Info(ex.LongMessage);
                Log.Error(ex);
                return((int)ExitCode.DigestMismatch);
            }
            catch (KeyNotFoundException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (WrongPassphraseException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.InvalidArguments);
            }
            catch (NotSupportedException ex)
            {
                Log.Error(ex);
                return((int)ExitCode.NotSupported);
            }
            #endregion
        }
    }