Skip to content

Commit 2b4cbfe

Browse files
authored
Fix linter errors raised by staticcheck (#236)
* Fix linter errors raised by staticcheck Signed-off-by: Radoslav Dimitrov <[email protected]> * chore: delete empty target folder when doing tuf commit Signed-off-by: Radoslav Dimitrov <[email protected]> * chore: update unit test to expect a deleted targets folder Signed-off-by: Radoslav Dimitrov <[email protected]> * chore: fix staticcheck error for local_store.go Signed-off-by: Radoslav Dimitrov <[email protected]>
1 parent 14b188b commit 2b4cbfe

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

local_store.go

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,7 @@ func (f *fileSystemStore) Commit(consistentSnapshot bool, versions map[string]in
410410
}
411411
return nil
412412
}
413+
// Checks if target file should be deleted
413414
needsRemoval := func(path string) bool {
414415
if consistentSnapshot {
415416
// strip out the hash
@@ -422,6 +423,16 @@ func (f *fileSystemStore) Commit(consistentSnapshot bool, versions map[string]in
422423
_, ok := hashes[path]
423424
return !ok
424425
}
426+
// Checks if folder is empty
427+
folderNeedsRemoval := func(path string) bool {
428+
f, err := os.Open(path)
429+
if err != nil {
430+
return false
431+
}
432+
defer f.Close()
433+
_, err = f.Readdirnames(1)
434+
return err == io.EOF
435+
}
425436
removeFile := func(path string, info os.FileInfo, err error) error {
426437
if err != nil {
427438
return err
@@ -431,11 +442,17 @@ func (f *fileSystemStore) Commit(consistentSnapshot bool, versions map[string]in
431442
return err
432443
}
433444
if !info.IsDir() && isTarget(rel) && needsRemoval(rel) {
434-
//lint:ignore SA9003 empty branch
445+
// Delete the target file
435446
if err := os.Remove(path); err != nil {
436-
// TODO: log / handle error
447+
return err
448+
}
449+
// Delete the target folder too if it's empty
450+
targetFolder := filepath.Dir(path)
451+
if folderNeedsRemoval(targetFolder) {
452+
if err := os.Remove(targetFolder); err != nil {
453+
return err
454+
}
437455
}
438-
// TODO: remove empty directory
439456
}
440457
return nil
441458
}

repo_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1490,7 +1490,7 @@ func (rs *RepoSuite) TestManageMultipleTargets(c *C) {
14901490
c.Assert(r.Snapshot(), IsNil)
14911491
c.Assert(r.Timestamp(), IsNil)
14921492
c.Assert(r.Commit(), IsNil)
1493-
tmp.assertEmpty("repository/targets")
1493+
tmp.assertNotExist("repository/targets")
14941494
t, err := r.topLevelTargets()
14951495
c.Assert(err, IsNil)
14961496
c.Assert(t.Targets, HasLen, 0)

verify/db_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func TestDelegationsDB(t *testing.T) {
3636
{
3737
testName: "invalid keys",
3838
delegations: &data.Delegations{Keys: map[string]*data.PublicKey{
39-
"a": &data.PublicKey{Type: data.KeySchemeEd25519},
39+
"a": {Type: data.KeySchemeEd25519},
4040
}},
4141
initErr: ErrWrongID{},
4242
},

0 commit comments

Comments
 (0)