From 3f5dd7b6cc368ad8a55e4ce55c0a85832b41e4a7 Mon Sep 17 00:00:00 2001 From: Fedor Korotkiy Date: Sat, 4 Apr 2020 17:28:13 +0300 Subject: [PATCH] Document tarstream --- distbuild/pkg/tarstream/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 distbuild/pkg/tarstream/README.md diff --git a/distbuild/pkg/tarstream/README.md b/distbuild/pkg/tarstream/README.md new file mode 100644 index 0000000..e8f06c4 --- /dev/null +++ b/distbuild/pkg/tarstream/README.md @@ -0,0 +1,21 @@ +# tarstream + +Вам нужно уметь передавать директорию с артефактами между воркерами. Для этого, вам нужно +реализовать две операции: + +```go +package tarstream + +import "io" + +// Send рекурсивно обходит директорию и сериализует её содержимое в поток w. +func Send(dir string, w io.Writer) error + +// Receive читает поток r и материализует содержимое потока внутри dir. +func Receive(dir string, r io.Reader) error +``` + +- Функции должны корректно обрабатывать директории и обычные файлы. +- executable бит на файлах должен сохраняться. +- Используйте формат [tar](https://golang.org/pkg/archive/tar/) +- Используйте [filepath.Walk](https://golang.org/pkg/path/filepath/) для рекурсивного обхода.