Hello!

I'm writing a library to simplify and optimize operations with files 
(everything is a file): https://github.com/cnaize/pipe

Example:
func main() {
// create a pipeline
pipeline := pipes.Line(
// set execution timeout
common.Timeout(time.Second),
// open two example files
localfs.OpenFiles("testdata/test_0.txt", "testdata/test_1.txt"),
// calculate and compare hash for each file
hash.SumSha256("kEvuni09HxM1ox-0nIj7_Ug1Adw0oIU62ukuh49oi5c=", 
"CeE_WA_xKsx2Dj_sRvowaCeDfQOPviSpyjaZdxuCT4Y="),
// zip the files
archive.ZipFiles(),
// calculate hash for the zip archive
hash.SumSha256(""),
// create a temporary directory
localfs.MakeDirAll("testdata/tmp", os.ModePerm),
// create a new file
localfs.CreateFiles("testdata/tmp/test.zip"),
// flow the files through the pipes and keep metadata
state.Consume(),
)

// run the pipeline
res, _ := pipeline.Run(context.Background(), nil)

// iterate over result files and print metadata
for file := range res.Files {
fmt.Printf("--> Result file:\n\tName: %s\n\tSize: %d\n\tHash: %s\n", file.
Name, file.Size, file.Hash)
}
}

Output:
--> Result file:
Name: testdata/tmp/test.zip
Size: 1047
Hash: Yg3OOaBD-miLs7lDIBVAeZMZIXYfy2N25f8-b-1kWOc=

Please, take a look, any feedback is welcome, thanks!

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/golang-nuts/bcda3aef-26cd-4466-94fb-e229bb9cc389n%40googlegroups.com.

Reply via email to