Golang_HomeWork/hw08_envdir_tool
Andrey Ivanov deb0d84a46 HW8.1 is completed 2020-08-13 12:53:05 +03:00
..
testdata Initial commit 2020-05-26 21:16:56 +03:00
README.md Initial commit 2020-05-26 21:16:56 +03:00
env_reader.go HW8 is completed 2020-08-11 11:18:20 +03:00
env_reader_test.go HW8 is completed 2020-08-11 11:18:20 +03:00
executor.go HW8 is completed 2020-08-11 11:18:20 +03:00
executor_test.go HW8 is completed 2020-08-11 11:24:21 +03:00
go.mod HW8 промежуточный 2020-08-10 16:34:38 +03:00
go.sum HW8.1 is completed 2020-08-13 12:53:05 +03:00
main.go HW8 промежуточный 2020-08-10 16:34:38 +03:00
test.sh HW8 is completed 2020-08-11 11:31:43 +03:00

README.md

Домашнее задание №8 «Утилита envdir»

Необходимо реализовать утилиту envdir на Go.

Эта утилита позволяет запускать программы, получая переменные окружения из определенной директории:

  • если директория содержит файл с именем S, первой строкой которого является T, то envdir удаляет переменную среды с именем S, если таковая существует, а затем добавляет переменную среды с именем S и значением T;
  • имя S не должно содержать =; пробелы и табуляция в конце T удаляются; терминальные нули (0x00) заменяются на перевод строки (\n);
  • если файл полностью пустой (длина - 0 байт), то envdir удаляет переменную окружения с именем S.

Пример использования:

$ go-envdir /path/to/env/dir command arg1 arg2

Если в директории /path/to/env/dir содержатся файлы:

  • FOO с содержимым 123;
  • BAR с содержимым value,

то вызов выше эквивалентен вызову

$ FOO=123 BAR=value command arg1 arg2

Также необходимо, чтобы:

  • стандартные потоки ввода/вывода/ошибок пробрасывались в вызываемую программу;
  • код выхода утилиты совпадал с кодом выхода программы.

При необходимости можно выделять дополнительные функции / ошибки.

Юнит-тесты могут использовать файлы из testdata или создавать свои директории / файлы, которые обязаны подчищать после своего выполнения.

Критерии оценки

  • Пайплайн зелёный - 4 балла
  • Добавлены юнит-тесты - до 4 баллов
  • Понятность и чистота кода - до 2 баллов

Зачёт от 7 баллов

Подсказки