Реализация командной строки bash на kotlin
- Одинарные и двойные кавычки (full and weak quoting)
- Переменные
- Оператор $
- Вызов внешних процессов
- Пайплайны (оператор |)
- readme.md
- добавить тесты
- использовать линтер
- вынести линтеры, тесты в gradle
- вынести gradle в CI
- документация
- cat [FILE] - выводит содержимое файла на экран
- echo - выводит на экран свои аргументы
- wc [FILE] - выводит количество строк, слов и байт в файле
- pwd - выводит текущую директорию
- exit - выходит из интерпретатора
-
./gradlew build
для компиляции проекта -
./gradlew run --console=plain
для запуска коммандной строки -
./gradlew test
для запуска тестов -
./gradlew lint
для запуска линтера -
./gradlew format
для запуска форматирования кода
Используемый линтер - ktlint.
В качестве шаблона проектирования используется паттерн "Абстрактная фабрика", она позволяет создавать команды.
Для создания новой команды нужно унаследоваться от класса Command
и добавить создание комманды в CommandFactory
Процесс обработки новой команды состоит из следующих этапов
- чтение команды
- разделение команды на слова, разделяемые кавычками или пробелами
- замена переменных в словах
- создание команды
- проверка правильности ключей
- исполнение команды