Skip to content

Conversation

@Hotckiss
Copy link

В целом все прикольно, пришлось добавить смену директории в окружении, но это действительно не требовалось в исходной задаче, можно было бы до бесконечности бы писать "на всякий случай".

Но раз это добавилось, то легко увидеть, что на самом деле почти все команды(кроме echo, и то это только в рамках задачи опять же), должны иметь возможность обращаться к своему окружению, поэтому я не делал бы дополнительную абстракцию с environment command.

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

Моментов, которые не понравились, нет в общем то, у меня добавление команд затруднений и лишней работы не вызвало, разве что в cat есть какие-то проблемы кажется.

Copy link

@ArtyomLobanov ArtyomLobanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Интересная характеристика

В целом все прикольно

  1. Сообщения об ошибках можно было бы и информативнее сделать
>cd olo
File not found error
>cd build.gradle
File not found error
  1. Адаптируйте внешние команды к своему пониманию рабочей директории
>cd ../../..
>pwd
C:\practice
# В этой папке нет git репозитория
>git status
On branch cdls
Your branch is up-to-date with 'origin/cdls'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

	bash.iml

nothing added to commit but untracked files present (use "git add" to track)

* @return full path
*/
fun getPath(path: String): String {
return getFile(path).canonicalPath

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Работать с путями как со строками в 2k19 довольно странно - есть Path

File(path).canonicalFile
} else {
File(curDir, path).canonicalFile
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А в Path эта логика уже реализована (Path.resolve)

val path = arguments.getOrElse(0) { "./" }

if (!env.updateDir(path)) {
output.write("File not found error")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не надо смешивать вывод команд и сообщения об ошибках. Бросайте исключения

return
}

val path = arguments.getOrElse(0) { "./" }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В bash если cd не передать аргументов, то рабочая директория меняется на домашнюю

@Hotckiss
Copy link
Author

@ArtyomLobanov подправил, работает

@ArtyomLobanov
Copy link

Добавьте зависимость от JUint в build.gradle
В остальном - ок
@yurii-litvinov

@Hotckiss
Copy link
Author

Хм, у меня заработало, я наверное подумал что он есть в исходнике

@Hotckiss
Copy link
Author

добавил

Copy link

@yurii-litvinov yurii-litvinov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Мне всё нравится, зачтена

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants