gitee.com/h79/goutils@v1.22.10/common/archive/multi.go (about)

     1  package archive
     2  
     3  import (
     4  	fileconfig "gitee.com/h79/goutils/common/file/config"
     5  )
     6  
     7  type multiArchive struct {
     8  	ars []Archive
     9  }
    10  
    11  func NewMulti(ar []Archive) Archive {
    12  	return &multiArchive{ars: ar}
    13  }
    14  
    15  // Close al.
    16  func (a *multiArchive) Close() error {
    17  	for i := range a.ars {
    18  		err := a.ars[i].Close()
    19  		if err != nil {
    20  			return err
    21  		}
    22  	}
    23  	return nil
    24  }
    25  
    26  // Add file to the archive.
    27  func (a *multiArchive) Add(f fileconfig.File, stream ...fileconfig.ReaderStream) error {
    28  	for i := range a.ars {
    29  		err := a.ars[i].Add(f, stream...)
    30  		if err != nil {
    31  			return err
    32  		}
    33  	}
    34  	return nil
    35  }