예제 #1
0
파일: bedu.cs 프로젝트: rlittletht/bedu
        static void Main(string[] args)
        {
            UnitTest();
            string sError;

            CmdLineConfig clcfg = new CmdLineConfig(new CmdLineSwitch[]
                {
                    new CmdLineSwitch("r", false, false, "record to a file", "filename", null),
                    new CmdLineSwitch("f", true, false, "fast mode", null, null),
                    new CmdLineSwitch("p", false, false, "playback from a file", "filename", null),
                    new CmdLineSwitch("n", false, false, "name this server (for later playback)", "servername", null),
                    new CmdLineSwitch("h", false, false, "name this server share (for later playback)", "sharename", null),
                    new CmdLineSwitch("v", true, false, "verbose - show each file", null, null),
                    new CmdLineSwitch("z", true, false, "zeros - show directories that are 0 size", null, null),
                    new CmdLineSwitch("d", false, false, "depth - max depth to show", "depth", null),
                    new CmdLineSwitch("0", true, false, "depth 0 - alias for -d 0", null, null),
                    new CmdLineSwitch("1", true, false, "depth 0 - alias for -d 1", null, null),
                    new CmdLineSwitch("2", true, false, "depth 0 - alias for -d 2", null, null),
                    new CmdLineSwitch("3", true, false, "depth 0 - alias for -d 3", null, null),
                    new CmdLineSwitch("x", true, false, "exclusions - use the global exclusion list", null, null),
                    new CmdLineSwitch("X", false, false, "eXclusions - load more exclusions from the named file", "filename", null),
                    new CmdLineSwitch("i", false, false, "inclusions - this is the selection list to match against", "filename", null)
                } );
            BEList belExclusions = new BEList();
            BEList belSelection = new BEList();
            BEDir bedProgram = new BEDir(Assembly.GetExecutingAssembly().Location, "");
            BEPref bep = new BEPref(belSelection, belExclusions, bedProgram.Dir);

            bep.MaxDepth=2;

            CmdLine cl = new CmdLine(clcfg);

            if (!cl.FParse(args, bep, null, out sError))
                {
                Console.WriteLine(sError);
                cl.Usage(OutputLine);
                return;
                }

            if (belSelection.Empty)
                belSelection = null;

            BEDir bedRoot = new BEDir(Environment.CurrentDirectory + @"\", ".");	// make sure we append a "/" because otherwise we won't know its a directory

            long cBytesExcl;

            //            bedRoot.GetDirSize(".", bedRoot.DirInfo, belExclusions, null, 0, bep, out cBytesExcl);
            // are we recording, playing back, or what?
            IReportUsage iru;
            if (bep.Fast)
                {
                iru = new ConsoleReportUsage(bep);
                BEDir.GetDirSizeFromDirectoryInfo(".", bedRoot.DirInfo, belExclusions, belSelection, 0, bep, iru, out cBytesExcl);
                }
            else
                {
                if (bep.Playback)
                    {
                    bedRoot = BedFromXml(XmlReader.Create(new StreamReader(bep.RecordFile)), bep);
                    // load the file here...
                    }

                if (bep.Record)
                    {
                    iru = new RecordReportUsage(bep, bep.ServerName, bep.ServerShare);
                    }
                else
                    {
                    iru = new ConsoleReportUsage(bep);
                    }

                iru.WritePrologue();
                bedRoot.ProcessDir(belExclusions, belSelection, 0, bep, iru);
                iru.WriteEpilogue();
                iru.Flush();
                }
        }
예제 #2
0
파일: ArbWeb.cs 프로젝트: rlittletht/ArbWeb
        /* A W  M A I N  F O R M */
        /*----------------------------------------------------------------------------
            %%Function: AwMainForm
            %%Qualified: ArbWeb.AwMainForm.AwMainForm
            %%Contact: rlittle

        ----------------------------------------------------------------------------*/
        public AwMainForm(string[] rgsCmdLine)
        {
            //
            // Required for Windows Form Designer support
            //
            m_plCursor = new List<Cursor>();

            InitializeComponent();

            m_srpt = new StatusBox.StatusRpt(m_recStatus);
            m_awc = new ArbWebControl(m_srpt);
            m_fDontUpdateProfile = true;
            RegistryKey rk = Registry.CurrentUser.OpenSubKey("Software\\Thetasoft\\ArbWeb");

            if (rk == null)
                rk = Registry.CurrentUser.CreateSubKey("Software\\Thetasoft\\ArbWeb");

            string []rgs = rk.GetSubKeyNames();

            foreach(string s in rgs)
                {
                m_cbxProfile.Items.Add(s);
                }
            m_rgreheProfile = new[]
                {
                    new Settings.SettingsElt("Login", Settings.Type.Str, m_ebUserID, ""),
                    new Settings.SettingsElt("Password", Settings.Type.Str, m_ebPassword, ""),
                    new Settings.SettingsElt("GameFile", Settings.Type.Str, m_ebGameFile, ""),
                    new Settings.SettingsElt("Roster", Settings.Type.Str, m_ebRoster, ""),
                    new Settings.SettingsElt("GameFileCopy", Settings.Type.Str, m_ebGameCopy, ""),
                    new Settings.SettingsElt("RosterCopy", Settings.Type.Str, m_ebRosterWorking, ""),
                    new Settings.SettingsElt("GameOutput", Settings.Type.Str, m_ebGameOutput, ""),
                    new Settings.SettingsElt("OutputFile", Settings.Type.Str, m_ebOutputFile, ""),
                    new Settings.SettingsElt("IncludeCanceled", Settings.Type.Bool, m_cbIncludeCanceled, 0),
                    new Settings.SettingsElt("ShowBrowser", Settings.Type.Bool, m_cbShowBrowser, 0),
                    new Settings.SettingsElt("LastSlotStartDate", Settings.Type.Dttm, m_dtpStart, ""),
                    new Settings.SettingsElt("LastSlotEndDate", Settings.Type.Dttm, m_dtpEnd, ""),
                    new Settings.SettingsElt("LastOpenSlotDetail", Settings.Type.Bool, m_cbOpenSlotDetail, 0),
                    new Settings.SettingsElt("LastGroupTimeSlots", Settings.Type.Bool, m_cbFuzzyTimes, 0),
                    new Settings.SettingsElt("LastTestEmail", Settings.Type.Bool, m_cbTestEmail, 0),
                    new Settings.SettingsElt("AddOfficialsOnly", Settings.Type.Bool, m_cbAddOfficialsOnly, 0),
                    new Settings.SettingsElt("AfiliationIndex", Settings.Type.Int, m_ebAffiliationIndex, 0),
                    new Settings.SettingsElt("LastSplitSports", Settings.Type.Bool, m_cbSplitSports, 0),
                    new Settings.SettingsElt("LastPivotDate", Settings.Type.Bool, m_cbDatePivot, 0),
                    new Settings.SettingsElt("LastLogToFile", Settings.Type.Bool, m_cbLogToFile, 0),
                    new Settings.SettingsElt("FilterMailMergeByRank", Settings.Type.Bool, m_cbFilterRank, 0),
                    new Settings.SettingsElt("DownloadOnlyFutureGames", Settings.Type.Bool, m_cbFutureOnly, 0),
                    new Settings.SettingsElt("LaunchMailMergeDoc", Settings.Type.Bool, m_cbLaunch, 0),
                    new Settings.SettingsElt("SetArbiterAnnouncement", Settings.Type.Bool, m_cbSetArbiterAnnounce, 0),
                };

            m_rgrehe = new []
                {
                    new Settings.SettingsElt("LastProfile", Settings.Type.Str, m_cbxProfile, "")
                };

            SetupLogToFile();

            m_reh = new Settings(m_rgrehe, "Software\\Thetasoft\\ArbWeb", "root");
            m_reh.Load();

            m_rehProfile = new Settings(m_rgreheProfile, String.Format("Software\\Thetasoft\\ArbWeb\\{0}", m_cbxProfile.Text), m_cbxProfile.Text);

            // load MRU from registry
            m_rehProfile.Load();
            m_fDontUpdateProfile = false;
            EnableControls();

            if (m_cbShowBrowser.Checked)
                m_awc.Show();

            CmdLineConfig clcfg = new CmdLineConfig(new CmdLineSwitch[]
                {
                new CmdLineSwitch("H", true /*fToggle*/, false /*fReq*/, "Update arbiter HELP NEEDED (includes downloading games, calculating slots). Requires -DS and -DE.", "help announce", null),
                new CmdLineSwitch("DS", false /*fToggle*/, false /*fReq*/, "Start date for slot calculation (required if -H specified)", "date start", null),
                new CmdLineSwitch("DE", false /*fToggle*/, false /*fReq*/, "End date for slot calculation (required if -H specified)", "date end", null),
                new CmdLineSwitch("F", false /*fToggle*/, false /*fReq*/, "Check this item in the Game/Slot filter", "Sport filter", null),
                new CmdLineSwitch("f", true /*fToggle*/, false /*fReq*/, "Force the games download to only download future games", "Future Games Only", null),
                });

            CmdLine cl = new CmdLine(clcfg);
            string sError = null;

            if (rgsCmdLine != null && rgsCmdLine.Length > 0)
                m_srpt.AddMessage(String.Format("Commandline args: {0} {1}", rgsCmdLine.Length, rgsCmdLine[0]));

            if (!cl.FParse(rgsCmdLine, this, null, out sError) || (m_fAutomateUpdateHelp && (m_sAutomateDateEnd == null || m_sAutomateDateStart == null)))
                {
                m_sbUsage = new StringBuilder();

                cl.Usage(AppendUsageString);
                MessageBox.Show(String.Format("Command Line error: {0}\n{1}", sError, m_sbUsage.ToString()), "ArbWeb");
                m_fAutomating = true;
                Close();
                }

            if (rgsCmdLine != null && rgsCmdLine.Length > 0)
                {
                m_fAutomating = true;

                if (m_fAutomateUpdateHelp)
                    {
                    DateTime dttmStart = DateTime.Parse(m_sAutomateDateStart);
                    DateTime dttmEnd = DateTime.Parse(m_sAutomateDateEnd);

                    m_cbLaunch.Checked = false;
                    m_cbSetArbiterAnnounce.Checked = true;
                    m_dtpStart.Value = dttmStart;
                    m_dtpEnd.Value = dttmEnd;
                    if (m_fForceFutureGames)
                        m_cbFutureOnly.Checked = true;

                    QueueUIOp(new DelayedUIOpDel(DoDownloadGames), new object[]{null, null});
                    QueueUIOp(new DelayedUIOpDel(CalcOpenSlots), new object[]{null, null});
                    QueueUIOp(new DelayedUIOpDel(DoCheckSportListboxes), new object[]{null, null});
                    QueueUIOp(new DelayedUIOpDel(GenMailMergeMail), new object[]{null, null});
                    QueueUIOp(new DelayedUIOpDel(DoExitApp), new object[]{null, null});

                    DoPendingQueueUIOp();
                    }
            }
        }