Skip to content

Commit

Permalink
refactor functions
Browse files Browse the repository at this point in the history
  • Loading branch information
tamada committed Mar 7, 2021
1 parent f4fbe64 commit 535074b
Showing 1 changed file with 22 additions and 10 deletions.
32 changes: 22 additions & 10 deletions arguments.go
Original file line number Diff line number Diff line change
Expand Up @@ -196,23 +196,35 @@ func countArchiveFromReader(s *Source, r *DataSink) {
traverser.traverseSource(s, r)
}

func openFile(name string) io.WriteCloser {
u, _ := url.Parse(name)
func createTeeReader(reader io.ReadCloser, name string) (io.ReadCloser, error) {
u, err := url.Parse(name)
if err != nil {
return nil, err
}
newName := path.Base(u.Path)
writer, _ := os.Create(newName)
return writer
writer, err := os.Create(newName)
if err != nil {
return nil, err
}
return newMyTeeReader(reader, writer), nil
}

func (opts *ReadOptions) handleURLContent(item Entry, r *DataSink, execFunc func(*Source, *DataSink)) {
func (opts *ReadOptions) openReader(item Entry) (io.ReadCloser, error) {
reader, err := item.Open()
if err != nil {
r.ec.Push(err)
return
return nil, err
}
if opts.StoreContent {
writer := openFile(item.Name())
defer writer.Close()
reader = newMyTeeReader(reader, writer)
return createTeeReader(reader, item.Name())
}
return reader, nil
}

func (opts *ReadOptions) handleURLContent(item Entry, r *DataSink, execFunc func(*Source, *DataSink)) {
reader, err := opts.openReader(item)
if err != nil {
r.ec.Push(err)
return
}
defer reader.Close()
source := NewSource(item.Name(), reader)
Expand Down

0 comments on commit 535074b

Please sign in to comment.