@@ -87,7 +87,6 @@ func WithSize(size int64) Option {
87
87
}
88
88
89
89
func NewParser (opts ... Option ) * Parser {
90
- fmt .Printf ("foo: %+v\n " , "foo" )
91
90
p := & Parser {}
92
91
93
92
for _ , opt := range opts {
@@ -110,7 +109,6 @@ func (p *Parser) Parse(r dio.ReadSeekerAt) ([]JarLibrary, error) {
110
109
func (p * Parser ) parseArtifact (filePath string , size int64 , r dio.ReadSeekerAt ) ([]JarLibrary , error ) {
111
110
log .Logger .Debugw ("Parsing Java artifacts..." , zap .String ("file" , filePath ))
112
111
113
- // TODO(shino): Calculate!
114
112
sha1 , err := digest .CalcSHA1 (r )
115
113
if err != nil {
116
114
return nil , xerrors .Errorf ("Failed to calculate SHA1. err: %w" , err )
@@ -181,12 +179,12 @@ func (p *Parser) parseArtifact(filePath string, size int64, r dio.ReadSeekerAt)
181
179
func (p * Parser ) parseInnerJar (zf * zip.File , rootPath string ) ([]JarLibrary , error ) {
182
180
fr , err := zf .Open ()
183
181
if err != nil {
184
- return nil , xerrors .Errorf ("unable to open %s : %w" , zf .Name , err )
182
+ return nil , xerrors .Errorf ("Failed to open file %s. err : %w" , zf .Name , err )
185
183
}
186
184
187
- f , err := os .CreateTemp ("" , "inner" )
185
+ f , err := os .CreateTemp ("" , "inner-* " )
188
186
if err != nil {
189
- return nil , xerrors .Errorf ("unable to create a temp file: %w" , err )
187
+ return nil , xerrors .Errorf ("Failed to create tmp file for %s. err : %w" , zf . Name , err )
190
188
}
191
189
defer func () {
192
190
f .Close ()
@@ -195,7 +193,11 @@ func (p *Parser) parseInnerJar(zf *zip.File, rootPath string) ([]JarLibrary, err
195
193
196
194
// Copy the file content to the temp file
197
195
if _ , err = io .Copy (f , fr ); err != nil {
198
- return nil , xerrors .Errorf ("file copy error: %w" , err )
196
+ return nil , xerrors .Errorf ("Failed to copy file %s. err: %w" , zf .Name , err )
197
+ }
198
+
199
+ if _ , err = f .Seek (0 , io .SeekStart ); err != nil {
200
+ return nil , xerrors .Errorf ("Failed to seek file %s. err: %w" , zf .Name , err )
199
201
}
200
202
201
203
// build full path to inner jar
@@ -204,7 +206,7 @@ func (p *Parser) parseInnerJar(zf *zip.File, rootPath string) ([]JarLibrary, err
204
206
// Parse jar/war/ear recursively
205
207
innerLibs , err := p .parseArtifact (fullPath , int64 (zf .UncompressedSize64 ), f )
206
208
if err != nil {
207
- return nil , xerrors .Errorf ("failed to parse %s : %w" , zf .Name , err )
209
+ return nil , xerrors .Errorf ("Failed to parse file %s. err : %w" , zf .Name , err )
208
210
}
209
211
210
212
return innerLibs , nil
0 commit comments