public override bool Unload() { CommandManager.UnregisterCommand(Commands.AliasCmd.Key); CommandManager.UnregisterCommand(Commands.UnaliasCmd.Key); EventManager <OSLoadedEvent> .RemoveHandler(LoadAliases); EventManager <CommandExecuteEvent> .RemoveHandler(CheckCommand); aliases.Clear(); aliases = null; file = null; return(base.Unload()); }
/// <summary> /// Run the alias command. /// </summary> public static void RunCommand(OS os, string[] args) { if (firstRun) { Load(os); } if (args.Length < 2) { Show(os, false); } else { int startArg = 1; while ((startArg < args.Length) && ParseOptions(os, args[startArg])) { startArg++; } if (startArg == 1) { string name = args[startArg]; if (!args[startArg].Contains("=")) { if (AliasMod.aliases.ContainsKey(name)) { os.write(KeyValueFile.ToKeyValueString(name, AliasMod.aliases[name].Command)); } else { os.write("Alias \"" + name + "\" not found"); } } else { os.write("Alias added: " + Add(os, string.Join(" ", args, startArg, args.Length - startArg)).Name); } } } }
/// <summary> /// Add an alias. /// </summary> private static Alias Add(OS os, string alias) { Alias al = null; string name = alias.Remove(alias.IndexOf('=')); string command = KeyValueFile.StripQuotes(alias.Remove(0, alias.IndexOf('=') + 1)); if (AliasMod.aliases.ContainsKey(name)) { al = AliasMod.aliases[name]; al.Command = command; AliasMod.file.Replace(name, command); } else { al = new Alias(name, command); AliasMod.aliases[name] = al; AliasMod.file.Append(name, command); } return(al); }