using System; using System.Collections.Generic; using System.IO; using S22.Xmpp; using S22.Xmpp.Client; using S22.Xmpp.Im; namespace RhinoReminds { public class ProgramSettings { public string Filepath = "./reminders.xml"; public string Jid = null; public string Password = null; } public static class Program { private static ProgramSettings settings = new ProgramSettings(); public static int Main(string[] args) { List extras = new List(); for (int i = 0; i < args.Length; i++) { if (!args[i].StartsWith("-")) { extras.Add(args[i]); continue; } switch (args[i]) { case "--help": Console.WriteLine("--- RhinoReminds ---"); Console.WriteLine("> An XMPP reminder bot"); Console.WriteLine(" By Starbeamrainbowlabs"); Console.WriteLine(); Console.WriteLine("Usage:"); Console.WriteLine(" mono RhinoReminds.exe {options}"); Console.WriteLine(); Console.WriteLine("Options:"); Console.WriteLine(" -h --help Show this message"); Console.WriteLine($" -f --file Specify where to save reminders (default: {settings.Filepath})"); Console.WriteLine(); Console.WriteLine("Environment Variables:"); Console.WriteLine(" XMPP_JID The JID to login to"); Console.WriteLine(" XMPP_PASSWORD The password to login with"); return 0; case "--jid": settings.Jid = args[++i]; break; } } settings.Jid = Environment.GetEnvironmentVariable("XMPP_JID"); settings.Password = Environment.GetEnvironmentVariable("XMPP_PASSWORD"); Run(); return 0; } public static void Run() { ClientListener client = new ClientListener(settings.Jid, settings.Password) { ReminderFilePath = settings.Filepath }; client.Start().Wait(); } } }