small progress
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is failing

This commit is contained in:
2022-12-04 03:18:47 +04:00
parent 0f641db567
commit 295919fbc9
4 changed files with 33 additions and 7 deletions

View File

@@ -4,8 +4,10 @@ import (
"fmt"
"io"
"io/fs"
"path/filepath"
"strings"
"github.com/davecgh/go-spew/spew"
"github.com/spf13/afero"
)
@@ -14,8 +16,13 @@ type ManifestFile struct {
FileInfo fs.FileInfo
}
func (m *ManifestFile) String() string {
return fmt.Sprintf("<File \"%s\">", m.Path)
}
type Manifest struct {
SourceFS afero.Fs
SourceFSRoot string
Files []*ManifestFile
ScanOptions *ManifestScanOptions
TotalFileSize int64
@@ -27,11 +34,22 @@ type ManifestScanOptions struct {
}
func NewFromPath(inputPath string, options *ManifestScanOptions) (*Manifest, error) {
afs := afero.NewBasePathFs(afero.NewOsFs(), inputPath)
return NewFromFilesystem(afs, options)
abs, err := filepath.Abs(inputPath)
if err != nil {
return nil, err
}
afs := afero.NewBasePathFs(afero.NewOsFs(), abs)
spew.Dump(afs)
m, err := NewFromFS(afs, options)
if err != nil {
return nil, err
}
m.SourceFSRoot = abs
spew.Dump(m)
return m, nil
}
func NewFromFilesystem(fs afero.Fs, options *ManifestScanOptions) (*Manifest, error) {
func NewFromFS(fs afero.Fs, options *ManifestScanOptions) (*Manifest, error) {
m := &Manifest{
SourceFS: fs,
ScanOptions: options,
@@ -41,7 +59,7 @@ func NewFromFilesystem(fs afero.Fs, options *ManifestScanOptions) (*Manifest, er
}
func (m *Manifest) Scan() {
afero.Walk(m.SourceFS, "", func(path string, info fs.FileInfo, err error) error {
afero.Walk(m.SourceFS, "./", func(path string, info fs.FileInfo, err error) error {
if m.ScanOptions.IgnoreDotfiles && strings.HasPrefix(path, ".") {
// FIXME make this check all path components BUG
@@ -54,6 +72,9 @@ func (m *Manifest) Scan() {
}
fmt.Printf("path = %s\n", path)
spew.Dump(path)
spew.Dump(info)
fileinfo, staterr := m.SourceFS.Stat(path)
if staterr != nil {
panic(staterr)