static void Main(string[] args) { Berrybrew BB = new Berrybrew(); if (args.Length != 0 && args[0] == "debug") { BB.Debug = true; args = args.Skip(1).ToArray(); } if (BB.Debug) { Console.WriteLine("\nberrybrew debugging enabled...\n"); Console.WriteLine( "install dir: {0}\nperl root dir: {1}\ntemp dir: {2}", BB.installPath, BB.rootPath, BB.archivePath ); } if (args.Length == 0) { BB.Message.Print("help"); Environment.Exit(0); } switch (args[0]) { case "available": BB.Available(); break; case "clean": if (args.Length > 1) { if (args[1].StartsWith("h")) { BB.Message.Say("subcmd.clean"); } else { BB.Clean(args[1]); } } else { BB.Clean(); } break; case "clone": if (args.Length != 3) { BB.Message.Say("clone_command_usage"); } bool ok = BB.Clone(args[1], args[2]); if (!ok) { Environment.Exit(0); } break; case "config": BB.Config(); break; case "exec": if (args.Length == 1) { BB.Message.Say("exec_command_required"); } args[0] = ""; if (args[1] == "-h" || args[1] == "help") { BB.Message.Say("subcmd.exec"); } BB.ExecCompile(String.Join(" ", args).Trim()); break; case "install": if (args.Length == 1) { BB.Message.Say("install_ver_required"); } try { BB.Install(args[1]); } catch (ArgumentException error) { if (BB.Debug) { Console.WriteLine(error); } BB.Message.Say("install_ver_unknown"); } break; case "license": if (args.Length == 1) { BB.Message.Say("license"); } break; case "off": BB.Off(); break; case "remove": if (args.Length == 1) { BB.Message.Say("remove_ver_required"); } BB.PerlRemove(args[1]); break; case "switch": if (args.Length == 1) { BB.Message.Say("switch_ver_required"); } BB.Switch(args[1]); break; case "unconfig": BB.Unconfig(); break; case "upgrade": BB.Upgrade(); break; case "version": Console.WriteLine(BB.Version()); break; default: BB.Message.Say("help"); break; } }
private static void Main(string[] args) { Berrybrew bb = new Berrybrew(); if (args.Length != 0 && args[0] == "debug") { bb.Debug = true; args = args.Skip(1).ToArray(); } if (bb.Debug) { Console.WriteLine("\nberrybrew debugging enabled...\n"); Console.WriteLine( "install dir: {0}\nperl root dir: {1}\ntemp dir: {2}\n", bb.installPath, bb.rootPath, bb.archivePath ); } if (args.Length != 0 && args[0] == "test") { bb.Testing = true; Console.WriteLine("\nberrybrew testing enabled"); args = args.Skip(1).ToArray(); } if (args.Length != 0 && args[0] == "trace") { bb.Trace = true; args = args.Skip(1).ToArray(); } if (args.Length != 0 && args[0] == "status") { bb.Status = true; args = args.Skip(1).ToArray(); } if (args.Length == 0) { bb.Message.Print("help"); bb.Exit(0); } switch (args[0]) { case "associate": if (args.Length > 1) { if (args[1] == "-h" || args[1] == "help") { bb.Message.Print("subcmd.associate"); bb.Exit(0); } else { bb.FileAssoc(args[1]); bb.Exit(0); } } bb.FileAssoc(); bb.Exit(0); break; case "available": if (args.Length > 1) { if (args[1].StartsWith("h")) { bb.Message.Print("subcmd.available"); bb.Exit(0); } else if (args[1] == "all") { bb.Available(true); bb.Exit(0); } } bb.Available(); bb.Exit(0); break; case "currentperl": Console.WriteLine(bb.PerlInUse().Name); bb.Exit(0); break; case "clean": if (args.Length > 1) { if (args[1].StartsWith("h")) { bb.Message.Print("subcmd.clean"); } else { bb.Clean(args[1]); } } else { bb.Clean(); bb.Exit(0); } break; case "clone": if (args.Length != 3) { bb.Message.Print("clone_command_usage"); bb.Exit(0); } bb.Clone(args[1], args[2]); bb.Exit(0); break; case "config": string cwd = Directory.GetCurrentDirectory(); if (String.Equals(cwd, @"c:\berrybrew", StringComparison.OrdinalIgnoreCase)) { Console.Error.WriteLine("\nAt this time, berrybrew can not be installed in C:\\berrybrew. Please move the directory and try again\n"); bb.Exit(-1); } bb.Config(); bb.Exit(0); break; case "exit": if (args.Length == 1) { Console.Error.WriteLine("'exit' requires an error code integer\n"); bb.Exit(-1); } bb.Exit(Int32.Parse(args[1])); break; case "error": if (args.Length == 1) { bb.Message.Error("error_number_required"); bb.Exit(-1); } string errorName = Enum.GetName(typeof(Berrybrew.ErrorCodes), Int32.Parse(args[1])); if (errorName == null) { errorName = "EXTERNAL_PROCESS_ERROR"; } Console.WriteLine("\nError Code {0}: {1}\n", args[1], errorName); bb.Exit(0); break; case "error-codes": bb.bypassOrphanCheck = true; foreach (int code in Enum.GetValues(typeof(Berrybrew.ErrorCodes))) { string exitCodeName = Enum.GetName(typeof(Berrybrew.ErrorCodes), code); Console.WriteLine("{0} - {1}", code, exitCodeName); } break; case "exec": if (args.Length == 1) { bb.Message.Print("exec_command_required"); Console.Error.WriteLine("'exec' requires a command"); bb.Exit(-1); } args[0] = ""; if (args[1] == "-h" || args[1] == "help") { bb.Message.Print("subcmd.exec"); bb.Exit(0); } List <String> newArgs = args.ToList(); newArgs.RemoveAt(0); bb.ExecCompile(newArgs); bb.Exit(0); break; case "fetch": bb.PerlUpdateAvailableList(); bb.Exit(0); break; case "help": if (args.Length == 1) { bb.Message.Print("help"); bb.Exit(0); } else { switch (args[1].ToLower()) { case "clean": bb.Message.Print("subcmd.clean"); bb.Exit(0); break; case "exec": bb.Message.Print("subcmd.exec"); bb.Exit(0); break; case "fetch": bb.Message.Print("subcmd.fetch"); bb.Exit(0); break; case "use": bb.Message.Print("subcmd.use"); bb.Exit(0); break; default: bb.Message.Print("help"); bb.Exit(0); break; } } break; case "hidden": bb.Message.Say("hidden"); bb.Exit(0); break; case "info": if (args.Length == 1) { bb.Message.Print("info_option_required"); bb.Exit(0); } bb.Info(args[1]); bb.Exit(0); break; case "install": if (args.Length == 1) { bb.Message.Print("install_ver_required"); bb.Exit(0); } try { bb.Install(args[1]); bb.Exit(0); } catch (ArgumentException error) { if (bb.Debug) { Console.WriteLine(error); } bb.Message.Print("install_ver_unknown"); Console.Error.WriteLine(error); bb.Exit(-1); } break; case "license": if (args.Length == 1) { bb.Message.Print("license"); bb.Exit(0); } bb.Exit(0); break; case "list": bb.List(); bb.Exit(0); break; case "modules": if (args.Length == 1) { bb.Message.Print("modules_command_required"); bb.Exit(0); } args[0] = ""; if (args[1] == "-h" || args[1] == "help") { bb.Message.Print("subcmd.modules"); bb.Exit(0); } if (args[1] != "import" && args[1] != "export") { Console.Error.WriteLine("\ninvalid option...\n"); bb.Message.Print("subcmd.modules"); bb.Exit(-1); } if (args[1] == "import") { if (args.Length < 3) { bb.ImportModules(); bb.Exit(0); } else { bb.ImportModules(args[2]); bb.Exit(0); } } if (args[1] == "export") { bb.ExportModules(); bb.Exit(0); } bb.Exit(0); break; case "off": bb.Off(); bb.Exit(0); break; case "options": if (args.Length > 1) { if (args[1].StartsWith("h")) { bb.Message.Print("subcmd.options"); bb.Exit(0); } } if (args.Length == 1) { bb.Options(); bb.Exit(0); } if (args.Length == 2) { bb.Options(args[1]); bb.Exit(0); } if (args.Length == 3) { bb.Options(args[1], args[2]); bb.Exit(0); } bb.Exit(0); break; case "options-update": bb.OptionsUpdate(); bb.Exit(0); break; case "options-update-force": bb.OptionsUpdate(true); bb.Exit(0); break; case "orphans": bb.bypassOrphanCheck = false; bb.OrphanedPerls(); bb.bypassOrphanCheck = true; bb.Exit(0); break; case "register": if (args.Length == 1) { bb.Message.Print("register_ver_required"); bb.Exit(0); } bb.PerlRegisterCustomInstall(args[1]); bb.Exit(0); break; case "register-orphans": bb.PerlUpdateAvailableListOrphans(); bb.Exit(0); break; case "remove": if (args.Length == 1) { bb.Message.Print("remove_ver_required"); bb.Exit(0); } bb.PerlRemove(args[1]); bb.Exit(0); break; case "switch": if (args.Length == 1) { bb.Message.Print("switch_ver_required"); bb.Exit(0); } if (args.Length == 2) { if (args[1].StartsWith("h")) { bb.Message.Print("subcmd.switch"); bb.Exit(0); } } bool switchQuick = false; if (args.Length == 3 && args[2] == "quick") { switchQuick = true; } bb.Switch(args[1], switchQuick); bb.Exit(0); break; case "unconfig": bb.Unconfig(); bb.Exit(0); break; case "upgrade": bb.Upgrade(); bb.Exit(0); break; case "use": if (args.Length == 1) { bb.Message.Print("use_ver_required"); bb.Exit(0); } switch (args[1].ToLower()) { case "-h": case "help": case "-help": case "--help": bb.Message.Print("subcmd.use"); bb.Exit(0); break; case "--win": case "--window": case "--windowed": if (args.Length < 3) { bb.Message.Print("use_ver_required"); bb.Exit(0); } else { bb.UseCompile(args[2], true); bb.Exit(0); } break; default: bb.UseCompile(args[1]); bb.Exit(0); break; } break; case "virtual": if (args.Length == 1) { bb.Message.Print("virtual_command_required"); bb.Exit(0); } bb.PerlRegisterVirtualInstall(args[1]); bb.Exit(0); break; case "version": Console.WriteLine(bb.Version()); bb.Exit(0); break; default: bb.Message.Print("help"); bb.Exit(0); break; } }
private static void Main(string[] args) { Berrybrew bb = new Berrybrew(); if (args.Length != 0 && args[0] == "debug") { bb.Debug = true; args = args.Skip(1).ToArray(); } if (bb.Debug) { Console.WriteLine("\nberrybrew debugging enabled...\n"); Console.WriteLine( "install dir: {0}\nperl root dir: {1}\ntemp dir: {2}", bb.InstallPath, bb.RootPath, bb.ArchivePath ); } if (args.Length != 0 && args[0] == "test") { bb.Testing = true; Console.WriteLine("\nberrybrew testing enabled"); args = args.Skip(1).ToArray(); } if (args.Length == 0) { bb.Message.Print("help"); Environment.Exit(0); } switch (args[0]) { case "available": bb.Available(); break; case "list": bb.List(); break; case "currentperl": Console.WriteLine(bb.PerlInUse().Name); break; case "clean": if (args.Length > 1) { if (args[1].StartsWith("h")) { bb.Message.Say("subcmd.clean"); } else { bb.Clean(args[1]); } } else { bb.Clean(); } break; case "clone": if (args.Length != 3) { bb.Message.Say("clone_command_usage"); } bool ok = bb.Clone(args[1], args[2]); if (!ok) { Environment.Exit(0); } break; case "config": string cwd = Directory.GetCurrentDirectory(); if (String.Equals(cwd, @"c:\berrybrew", StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("\nAt this time, berrybrew can not be installed in C:\\berrybrew. Please move the directory and try again\n"); Environment.Exit(0); } bb.Config(); break; case "exec": if (args.Length == 1) { bb.Message.Say("exec_command_required"); } args[0] = ""; if (args[1] == "-h" || args[1] == "help") { bb.Message.Say("subcmd.exec"); } List <String> newArgs = args.ToList(); newArgs.RemoveAt(0); bb.ExecCompile(newArgs); break; case "fetch": bool allPerls = false; if (args.Length > 1) { if (args[1].StartsWith("h")) { bb.Message.Say("subcmd.fetch"); } else { allPerls = args[1].Equals("all"); } } bb.PerlUpdateAvailableList(allPerls); bb.PerlUpdateAvailableListOrphans(); break; case "help": if (args.Length == 1) { bb.Message.Say("help"); } else { switch (args[1].ToLower()) { case "clean": bb.Message.Say("subcmd.clean"); break; case "exec": bb.Message.Say("subcmd.exec"); break; case "fetch": bb.Message.Say("subcmd.fetch"); break; case "use": bb.Message.Say("subcmd.use"); break; default: bb.Message.Say("help"); break; } } break; case "install": if (args.Length == 1) { bb.Message.Say("install_ver_required"); } try { bb.Install(args[1]); } catch (ArgumentException error) { if (bb.Debug) { Console.WriteLine(error); } bb.Message.Say("install_ver_unknown"); } break; case "license": if (args.Length == 1) { bb.Message.Say("license"); } break; case "modules": if (args.Length == 1) { bb.Message.Say("modules_command_required"); } bb.Message.Print("warning_modules_beta"); args[0] = ""; if (args[1] == "-h" || args[1] == "help") { bb.Message.Say("subcmd.modules"); } if (args[1] != "import" && args[1] != "export") { Console.WriteLine("\ninvalid option...\n"); bb.Message.Say("subcmd.modules"); } if (args[1] == "import") { if (args.Length < 3) { bb.ImportModules(); } else { bb.ImportModules(args[2]); } } if (args[1] == "export") { bb.ExportModules(); } break; case "off": bb.Off(); break; case "register": if (args.Length == 1) { bb.Message.Say("register_ver_required"); } bb.PerlRegisterCustomInstall(args[1]); break; case "remove": if (args.Length == 1) { bb.Message.Say("remove_ver_required"); } bb.PerlRemove(args[1]); break; case "switch": if (args.Length == 1) { bb.Message.Say("switch_ver_required"); } bb.Switch(args[1]); break; case "unconfig": bb.Unconfig(); break; case "upgrade": bb.Upgrade(); break; case "use": // pryrt's added feature if (args.Length == 1) { bb.Message.Say("use_ver_required"); } switch (args[1].ToLower()) { case "-h": case "help": case "-help": case "--help": bb.Message.Say("subcmd.use"); break; case "--win": case "--window": case "--windowed": if (args.Length < 3) { bb.Message.Say("use_ver_required"); } else { bb.UseCompile(args[2], true); } break; default: bb.UseCompile(args[1]); break; } break; case "version": Console.WriteLine(bb.Version()); break; default: bb.Message.Say("help"); break; } }