-
Notifications
You must be signed in to change notification settings - Fork 0
/
todo.txt
32 lines (30 loc) · 2.72 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
* Список к реализации *
- команда вывода списка зарегистрированных команд и удаления из него;
- команда очистки консоли;
- команда вывода документации и синтаксиса зарегистрированных команд; при отсутствии документации сгенерировать ее на основе параметров автозавершения;
- экранирование параметров команды через кавычки и апостроф;
- передача специальных символов через бэкслеш, в том числе по кодам символов;
- алиасы команд, полные синонимы команды с более короткой записью;
- биндинг команд с аргументами в виде коротких вызовов;
- сохранение биндингов на диске при выходе и восстановление при запуске консоли;
- автозавершение команды при нажатии tab; когда введена команда, автозавершение для ее аргументов в соответствии с позицией; при множественном выборе перебирать варианты по порядку на каждое нажатие tab;
- команда вывода истории команд;
- по кнопкам вверх-вниз циклически прокручивать историю выполненных команд; исключать при выборе дублирующиеся вызовы из истории;
- сохранение истории команд при выходе и восстановление при запуске консоли;
- возможность запуска команд в отдельном потоке; при запуске команда получает идентификатор и может управляться отдельно;
- команда вывода работающих фоновых команд и их завершения;
- возможность интерактивного взаимодействия с пользователем, ожидание ввода в процессе выполнения команды;
- команда чтения и выполнения файла команд;
- перехватывать ctrl+c когда выполняется команда и корректно ее прерывать без потери данных и выхода из консоли;
- код выполнения команды; при выполнении команды через аргументы при вызове ответ команды возвращается в виде кода завершения консоли;
- если командная строка непустая, то выполнить аргументы при запуске и выйти с кодом завершения;
- если stdin непустой, выполнить его как последовательность команд и выйти с кодом завершения;
- заполнение и чтение переменных для настройки путей или параметров, в том числе в биндингах;
- работа команд с потоком ввода и потоком вывода; реализовать через интерфейсы, чтобы выделять команды, которые поддерживают ввод и которые поддерживают вывод;
- каскадирование вызовов команд с направлением потока вывода на ввод следующей команды;
- команда генерации хеш-суммы для введенного пароля;
- управление уровнем доступа к командам; при реализации командой интерфейса доступа, запрашивать пароль и сравнивать с зашитой в команде хеш-суммой;
- читать и выполнять файл автозапуска каждый раз при простым входе в консоль;
- читать и выполнять файл при выходе из консоли;
- передавать в эмулятор терминала строки с ansi-совместимым форматированием; для не поддерживающих форматирование платформ очищать от esc-последовательностей;
- реализовать работу консоли в виде элементов графического интерфейса для платформ с визуализацией (flash, js ...);