예제 #1
0
        internal static void DisplayCommandList(CommandTableHeader *commandTable)
        {
            Diagnostics.Assert(commandTable != null, "Prompter::DisplayCommandList(CommandTableHeader*): Parameter 'commandTable' is null");

            if (commandTable->firstEntry == null)
            {
                ADC.TextMode.WriteLine("No commands to display; the commands list is empty.");
                return;
            }
            else
            {
                TextColor origForecolor = TextMode.Foreground;
                const int firstColWidth = 22;

                TextMode.SetAttributes(TextColor.White, TextMode.Background);
                string colALabel = "  NAME";
                string colBLabel = "  DESCRIPTION";

                TextMode.Write(colALabel);

                for (int spaces = firstColWidth - colALabel.Length;
                     spaces > 0;
                     spaces--)
                {
                    ADC.TextMode.Write(" ");
                }

                TextMode.WriteLine(colBLabel);

                CommandTableEntry *currentEntry;

                for (currentEntry = commandTable->firstEntry;
                     currentEntry != null;
                     currentEntry = currentEntry->nextEntry)
                {
                    ADC.TextMode.SetAttributes(TextColor.BrightWhite, TextMode.Background);
                    ADC.TextMode.Write("[");
                    ADC.TextMode.SetAttributes(TextColor.Yellow, TextMode.Background);
                    ADC.TextMode.Write(currentEntry->name);
                    ADC.TextMode.SetAttributes(TextColor.BrightWhite, TextMode.Background);
                    ADC.TextMode.Write("]");

                    int spaces = firstColWidth - (currentEntry->name->Length) - 2;

                    if (spaces < 0)
                    {
                        spaces = 0;
                    }

                    for (; spaces > 0; spaces--)
                    {
                        ADC.TextMode.Write(" ");
                    }

                    ADC.TextMode.SetAttributes(TextColor.Yellow, TextMode.Background);
                    ADC.TextMode.WriteLine(currentEntry->shortDescription);
                }
                ADC.TextMode.SetAttributes(origForecolor, TextMode.Background);
            }
        }
예제 #2
0
        public static CommandTableHeader *GenerateDefaultRoot()
        {
            CommandTableHeader *header = (CommandTableHeader *)SharpOS.Kernel.ADC.MemoryManager.Allocate((uint)sizeof(CommandTableHeader));

            header->firstEntry = null;

            header->AddEntry(BuiltIn.Cls.CREATE());
            header->AddEntry(BuiltIn.Commands.CREATE());
            header->AddEntry(BuiltIn.CpuId.CREATE());
            header->AddEntry(BuiltIn.Egg.CREATE());
            header->AddEntry(BuiltIn.Halt.CREATE());
            header->AddEntry(BuiltIn.Help.CREATE());
            header->AddEntry(BuiltIn.Keymap.CREATE());
            header->AddEntry(BuiltIn.LS.CREATE());
            header->AddEntry(BuiltIn.LsPci.CREATE());
            header->AddEntry(BuiltIn.MemDump.CREATE());
            header->AddEntry(BuiltIn.MemView.CREATE());
            header->AddEntry(BuiltIn.Panic.CREATE());
            header->AddEntry(BuiltIn.Reboot.CREATE());
            header->AddEntry(BuiltIn.Show.CREATE());
            header->AddEntry(BuiltIn.Snake.CREATE());
            header->AddEntry(BuiltIn.Stage.CREATE());
            header->AddEntry(BuiltIn.Version.CREATE());
            header->AddEntry(BuiltIn.Time.CREATE());
            header->AddEntry(BuiltIn.Timezone.CREATE());
            header->AddEntry(BuiltIn.Testcase.CREATE());
            header->AddEntry(BuiltIn.ListResources.CREATE());
            header->AddEntry(BuiltIn.Mount.CREATE());
            header->AddEntry(BuiltIn.More.CREATE());

            return(header);
        }
예제 #3
0
        public static void Setup()
        {
            if (initialized)
            {
                return;
            }

            CommandTable = CommandTableHeader.GenerateDefaultRoot();
            lineBuffer   = StringBuilder.CREATE(80 * 5);

            initialized = true;
        }