diff --git a/internal/slicer/report.go b/internal/slicer/report.go deleted file mode 100644 index 9fd70705..00000000 --- a/internal/slicer/report.go +++ /dev/null @@ -1,62 +0,0 @@ -package slicer - -import ( - "fmt" - "io/fs" - "sync" - - "github.com/canonical/chisel/internal/fsutil" - "github.com/canonical/chisel/internal/setup" -) - -type FileReport struct { - Path string - Mode fs.FileMode - Hash string - Size uint - Mutable bool - Slices map[*setup.Slice]bool - Link string -} - -// Report holds the information about files created when slicing packages. -type Report struct { - Root string - // map indexed by path. - Files map[string]FileReport - mutex *sync.Mutex -} - -func NewReport(root string) *Report { - return &Report{Files: make(map[string]FileReport), Root: root, mutex: &sync.Mutex{}} -} - -func (r *Report) AddFile(slice *setup.Slice, file fsutil.FileInfo) error { - r.mutex.Lock() - defer r.mutex.Unlock() - - if fr, ok := r.Files[file.Path]; ok { - if !fr.Mode.IsDir() { - var existingSlice *setup.Slice - for s := range fr.Slices { - existingSlice = s - break - } - return fmt.Errorf("slices %s and %s attempted to create the same file: %s", - slice, existingSlice, fr.Path) - } - fr.Slices[slice] = true - r.Files[file.Path] = fr - } else { - r.Files[file.Path] = FileReport{ - Path: file.Path, - Mode: file.Mode, - Hash: file.Hash, - Size: file.Size, - Mutable: false, - Slices: map[*setup.Slice]bool{slice: true}, - Link: file.Link, - } - } - return nil -} diff --git a/internal/slicer/report_test.go b/internal/slicer/report_test.go deleted file mode 100644 index 164a612c..00000000 --- a/internal/slicer/report_test.go +++ /dev/null @@ -1,127 +0,0 @@ -package slicer_test - -import ( - "github.com/canonical/chisel/internal/fsutil" - "github.com/canonical/chisel/internal/setup" - "github.com/canonical/chisel/internal/slicer" - . "gopkg.in/check.v1" - "io/fs" -) - -var mySlice = &setup.Slice{ - Package: "base-files", - Name: "my-slice", - Essential: nil, - Contents: nil, - Scripts: setup.SliceScripts{}, -} - -var otherSlice = &setup.Slice{ - Package: "base-files", - Name: "other-slice", - Essential: nil, - Contents: nil, - Scripts: setup.SliceScripts{}, -} - -var sampleDir = fsutil.FileInfo{ - Path: "/root/example", - Mode: fs.ModeDir | 0654, - Hash: "example_hash", - Size: 1234, - Link: "", -} - -var sampleFile = fsutil.FileInfo{ - Path: "/root/exampleFile", - Mode: 0777, - Hash: "exampleFile_hash", - Size: 5678, - Link: "", -} - -var sampleLink = fsutil.FileInfo{ - Path: "/root/exampleLink", - Mode: 0777, - Hash: "exampleFile_hash", - Size: 5678, - Link: "/root/exampleFile", -} - -var testFiles = []struct { - summary string - info fsutil.FileInfo - slice *setup.Slice - expected slicer.FileReport - err string -}{{ - summary: "Regular directory", - info: sampleDir, - slice: mySlice, - expected: slicer.FileReport{ - Path: "/root/example", - Mode: fs.ModeDir | 0654, - Hash: "example_hash", - Size: 1234, - Mutable: false, - Slices: map[*setup.Slice]bool{mySlice: true}, - Link: "", - }, -}, { - summary: "Regular directory added by several slices", - info: sampleDir, - slice: otherSlice, - expected: slicer.FileReport{ - Path: "/root/example", - Mode: fs.ModeDir | 0654, - Hash: "example_hash", - Size: 1234, - Mutable: false, - Slices: map[*setup.Slice]bool{mySlice: true, otherSlice: true}, - Link: "", - }, -}, { - summary: "Regular file", - info: sampleFile, - slice: mySlice, - expected: slicer.FileReport{ - Path: "/root/exampleFile", - Mode: 0777, - Hash: "exampleFile_hash", - Size: 5678, - Mutable: false, - Slices: map[*setup.Slice]bool{mySlice: true}, - Link: "", - }, -}, { - summary: "Regular file, error when created by several slices", - info: sampleFile, - slice: otherSlice, - err: "slices base-files_other-slice and base-files_my-slice attempted to create the same file: /root/exampleFile", -}, { - summary: "Regular file link", - info: sampleLink, - slice: mySlice, - expected: slicer.FileReport{ - Path: "/root/exampleLink", - Mode: 0777, - Hash: "exampleFile_hash", - Size: 5678, - Mutable: false, - Slices: map[*setup.Slice]bool{mySlice: true}, - Link: "/root/exampleFile", - }, -}} - -func (s *S) TestReportAddFile(c *C) { - report := slicer.NewReport("/root") - for _, test := range testFiles { - err := report.AddFile(test.slice, test.info) - if test.err != "" { - c.Assert(err, ErrorMatches, test.err, Commentf(test.summary)) - } else { - c.Assert(err, IsNil) - c.Assert(report.Files[test.info.Path], DeepEquals, test.expected, Commentf(test.summary)) - } - } -} diff --git a/internal/slicer/slicer.go b/internal/slicer/slicer.go index b514e487..4561ac9e 100644 --- a/internal/slicer/slicer.go +++ b/internal/slicer/slicer.go @@ -28,7 +28,6 @@ func Run(options *RunOptions) error { archives := make(map[string]archive.Archive) extract := make(map[string]map[string][]deb.ExtractInfo) pathInfos := make(map[string]setup.PathInfo) - report := NewReport(options.TargetDir) knownPaths := make(map[string]bool) @@ -163,12 +162,6 @@ func Run(options *RunOptions) error { Globbed: globbedPaths, FileCreator: fileCreator, }) - for _, file := range fileCreator.Files { - err := report.AddFile(slice, file) - if err != nil { - return err - } - } reader.Close() packages[slice.Package] = nil if err != nil { @@ -232,12 +225,6 @@ func Run(options *RunOptions) error { if err != nil { return err } - for _, file := range fileCreator.Files { - err := report.AddFile(slice, file) - if err != nil { - return err - } - } } }