mirror of
https://github.com/reactos/reactos.git
synced 2026-06-02 17:31:23 +08:00
- Moved commands outside TechBot.Library to TechBot.Commands.Common and TechBot.Commands.MSDN except for Command base classes
- Made TechBot more configurable through .config files - Code refactoring - Removed automatic parameter parsing support to make everyone happy svn path=/trunk/; revision=33586
This commit is contained in:
@@ -1,15 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<appSettings>
|
||||
<add key="IRCServerHostName" value="irc.eu.freenode.net" />
|
||||
<add key="IRCServerHostPort" value="6667" />
|
||||
<add key="IRCChannelNames" value="channel1;channel2" />
|
||||
<add key="IRCBotName" value="MyBot" />
|
||||
<add key="IRCBotPassword" value="MyPassword" />
|
||||
<add key="ChmPath" value="C:\IRC\TechBot\CHM" />
|
||||
<add key="MainChm" value="kmarch.chm" />
|
||||
<add key="BugUrl" value="http://www.reactos.org/bugzilla/show_bug.cgi?id={0}" />
|
||||
<add key="WineBugUrl" value="http://bugs.winehq.org/show_bug.cgi?id={0}" />
|
||||
<add key="SambaBugUrl" value="https://bugzilla.samba.org/show_bug.cgi?id={0}" />
|
||||
</appSettings>
|
||||
</configuration>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="TechBot.Console.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<userSettings>
|
||||
<TechBot.Console.Settings>
|
||||
<setting name="IRCServerHostName" serializeAs="String">
|
||||
<value>irc.eu.freenode.net</value>
|
||||
</setting>
|
||||
<setting name="IRCChannelNames" serializeAs="String">
|
||||
<value>rbuildbottest2</value>
|
||||
</setting>
|
||||
<setting name="IRCBotName" serializeAs="String">
|
||||
<value>RBuildBot2</value>
|
||||
</setting>
|
||||
<setting name="IRCBotPassword" serializeAs="String">
|
||||
<value>qwerty</value>
|
||||
</setting>
|
||||
<setting name="IRCServerHostPort" serializeAs="String">
|
||||
<value>6667</value>
|
||||
</setting>
|
||||
</TechBot.Console.Settings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
@@ -17,11 +17,10 @@ namespace TechBot.Console
|
||||
|
||||
public class ConsoleTechBotService : TechBotService
|
||||
{
|
||||
public ConsoleTechBotService(
|
||||
string chmPath,
|
||||
string mainChm)
|
||||
: base(new ConsoleServiceOutput(), chmPath, mainChm)
|
||||
public ConsoleTechBotService()
|
||||
: base(new ConsoleServiceOutput())
|
||||
{
|
||||
System.Console.WriteLine("TechBot running console service...");
|
||||
}
|
||||
|
||||
public override void Run()
|
||||
@@ -31,8 +30,7 @@ namespace TechBot.Console
|
||||
|
||||
while (true)
|
||||
{
|
||||
string s = System.Console.ReadLine();
|
||||
InjectMessage(null, s);
|
||||
InjectMessage(System.Console.ReadLine());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,240 +1,29 @@
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using TechBot.Library;
|
||||
|
||||
namespace TechBot.Console
|
||||
{
|
||||
class MainClass
|
||||
{
|
||||
private static void VerifyRequiredOption(string optionName,
|
||||
string optionValue)
|
||||
{
|
||||
if (optionValue == null)
|
||||
{
|
||||
throw new Exception(String.Format("Option '{0}' not set.",
|
||||
optionName));
|
||||
}
|
||||
}
|
||||
|
||||
private static string IRCServerHostName
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "IRCServerHostName";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static int IRCServerHostPort
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "IRCServerHostPort";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return Int32.Parse(s);
|
||||
}
|
||||
}
|
||||
|
||||
private static string IRCChannelNames
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "IRCChannelNames";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string IRCBotName
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "IRCBotName";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string IRCBotPassword
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "IRCBotPassword";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string ChmPath
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "ChmPath";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string MainChm
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "MainChm";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string NtstatusXml
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "NtstatusXml";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string WinerrorXml
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "WinerrorXml";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string HresultXml
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "HresultXml";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string WmXml
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "WmXml";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string SvnCommand
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "SvnCommand";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string BugUrl
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "BugUrl";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
private static string WineBugUrl
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "WineBugUrl";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static string SambaBugUrl
|
||||
{
|
||||
get
|
||||
{
|
||||
string optionName = "SambaBugUrl";
|
||||
string s = ConfigurationSettings.AppSettings[optionName];
|
||||
VerifyRequiredOption(optionName,
|
||||
s);
|
||||
return s;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//private static void RunIrcService()
|
||||
//{
|
||||
// IrcTechBotService ircService = new IrcTechBotService(IRCServerHostName,
|
||||
// IRCServerHostPort,
|
||||
// IRCChannelNames,
|
||||
// IRCBotName,
|
||||
// IRCBotPassword,
|
||||
// ChmPath,
|
||||
// MainChm);
|
||||
// ircService.Run();
|
||||
//}
|
||||
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
TechBotService m_TechBot = null;
|
||||
|
||||
if (args.Length > 0 && args[0].ToLower().Equals("irc"))
|
||||
{
|
||||
m_TechBot = new IrcTechBotService(IRCServerHostName,
|
||||
IRCServerHostPort,
|
||||
IRCChannelNames,
|
||||
IRCBotName,
|
||||
IRCBotPassword,
|
||||
ChmPath,
|
||||
MainChm);
|
||||
}
|
||||
else
|
||||
{
|
||||
System.Console.WriteLine("TechBot running console service...");
|
||||
m_TechBot = new ConsoleTechBotService(
|
||||
ChmPath,
|
||||
MainChm);
|
||||
|
||||
|
||||
}
|
||||
|
||||
m_TechBot.Run();
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Configuration;
|
||||
using TechBot.Library;
|
||||
|
||||
namespace TechBot.Console
|
||||
{
|
||||
class MainClass
|
||||
{
|
||||
public static void Main(string[] args)
|
||||
{
|
||||
TechBotService m_TechBot = null;
|
||||
|
||||
if (args.Length > 0 && args[0].ToLower().Equals("irc"))
|
||||
{
|
||||
m_TechBot = new IrcTechBotService(Settings.Default.IRCServerHostName,
|
||||
Settings.Default.IRCServerHostPort,
|
||||
Settings.Default.IRCChannelNames,
|
||||
Settings.Default.IRCBotName,
|
||||
Settings.Default.IRCBotPassword);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_TechBot = new ConsoleTechBotService();
|
||||
}
|
||||
|
||||
m_TechBot.Run();
|
||||
}
|
||||
}
|
||||
}
|
||||
86
irc/TechBot/TechBot.Console/Settings.Designer.cs
generated
Normal file
86
irc/TechBot/TechBot.Console/Settings.Designer.cs
generated
Normal file
@@ -0,0 +1,86 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:2.0.50727.1433
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace TechBot.Console {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")]
|
||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||
|
||||
public static Settings Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("irc.eu.freenode.net")]
|
||||
public string IRCServerHostName {
|
||||
get {
|
||||
return ((string)(this["IRCServerHostName"]));
|
||||
}
|
||||
set {
|
||||
this["IRCServerHostName"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("rbuildbottest2")]
|
||||
public string IRCChannelNames {
|
||||
get {
|
||||
return ((string)(this["IRCChannelNames"]));
|
||||
}
|
||||
set {
|
||||
this["IRCChannelNames"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("RBuildBot2")]
|
||||
public string IRCBotName {
|
||||
get {
|
||||
return ((string)(this["IRCBotName"]));
|
||||
}
|
||||
set {
|
||||
this["IRCBotName"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("qwerty")]
|
||||
public string IRCBotPassword {
|
||||
get {
|
||||
return ((string)(this["IRCBotPassword"]));
|
||||
}
|
||||
set {
|
||||
this["IRCBotPassword"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("6667")]
|
||||
public int IRCServerHostPort {
|
||||
get {
|
||||
return ((int)(this["IRCServerHostPort"]));
|
||||
}
|
||||
set {
|
||||
this["IRCServerHostPort"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
21
irc/TechBot/TechBot.Console/Settings.settings
Normal file
21
irc/TechBot/TechBot.Console/Settings.settings
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="TechBot.Console" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="IRCServerHostName" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">irc.eu.freenode.net</Value>
|
||||
</Setting>
|
||||
<Setting Name="IRCChannelNames" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">rbuildbottest2</Value>
|
||||
</Setting>
|
||||
<Setting Name="IRCBotName" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">RBuildBot2</Value>
|
||||
</Setting>
|
||||
<Setting Name="IRCBotPassword" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">qwerty</Value>
|
||||
</Setting>
|
||||
<Setting Name="IRCServerHostPort" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">6667</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@@ -40,11 +40,24 @@
|
||||
<Compile Include="AssemblyInfo.cs" />
|
||||
<Compile Include="ConsoleTechBotService.cs" />
|
||||
<Compile Include="Main.cs" />
|
||||
<Compile Include="Settings.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\TechBot.Commands.Common\TechBot.Commands.Common.csproj">
|
||||
<Project>{041B5F06-BF97-4981-B024-3A7B6DD9F6AE}</Project>
|
||||
<Name>TechBot.Commands.Common</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\TechBot.Commands.RBuild\TechBot.Commands.RBuild.csproj">
|
||||
<Project>{D676FEDE-62DD-4B4D-94C6-308598E827F9}</Project>
|
||||
<Name>TechBot.Commands.RBuild</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\TechBot.IRCLibrary\TechBot.IRCLibrary.csproj">
|
||||
<Project>{D2A57931-DF04-4BC3-BD11-75DF4F3B0A88}</Project>
|
||||
<Name>TechBot.IRCLibrary</Name>
|
||||
@@ -55,7 +68,11 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config" />
|
||||
<None Include="app.config" />
|
||||
<None Include="Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
|
||||
Reference in New Issue
Block a user