Skip to content

Conversation

@Nikolai-SE
Copy link
Collaborator

@Nikolai-SE Nikolai-SE commented Mar 5, 2023

Реализация CLI, часть 1 ⭐ 10

Реализовать в тех же командах, в которых делалась предыдущая домашняя работа, первую часть архитектуры Command-Line Interface из домашней работы 1, связанную с поддержкой Read-Execute-Print Loop и команд. Подстановки и пайпы пока не надо.

Должны поддерживаться:

  • cat — вывести на экран содержимое файла;
  • echo — вывести на экран свой аргумент (или аргументы);
  • wc — вывести количество строк, слов и байт в файле;
  • pwd — распечатать текущую директорию;
  • exit — выйти из интерпретатора;
  • если введено что-то, чего интерпретатор не знает — вызов внешней программы.

При этом:

  • одинарные и двойные кавычки должны поддерживаться, хоть они ничем не отличаются без постановок: строка в кавычках — один аргумент;
  • переменные окружения должны поддерживаться и передаваться внешнему процессу при запуске;
  • для команд должны поддерживаться потоки вывода, ошибок и код возврата (для встроенных команд — на ваше усмотрение, для внешних процессов — что они вернут).

С технической точки зрения надо:

  • чтобы оно собиралось и запускалось из консоли, а не только из вашей любимой IDE;
  • очень желательно, чтобы оно работало и под Windows, и под Linux;
  • процесс сборки и запуска должен описан в README.md;
  • должны быть юнит-тесты;
  • должен быть настроенный CI, где эти юнит-тесты бы запускались;
  • должны быть комментарии к каждому типу и каждому public-методу;
  • должен быть выложен в свой репозиторий проект системы из задания 1.

Сдавать в виде пуллреквеста в свой репозиторий. Ссылку на пуллреквест приложить в качестве решения.

@Nikolai-SE Nikolai-SE added the Ожидается проверка Проверьте меня пожалуйста label Mar 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Ожидается проверка Проверьте меня пожалуйста

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants