pkg

package
v1.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 25, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExportCSV

func ExportCSV(groups []FileGroup, writer io.Writer) error

ExportCSV exporta os resultados em formato CSV

func ExportJSON

func ExportJSON(groups []FileGroup, writer io.Writer) error

ExportJSON exporta os resultados em formato JSON

func GetTotalDuplicateSize

func GetTotalDuplicateSize(groups []FileGroup) int64

GetTotalDuplicateSize calcula o tamanho total que pode ser liberado removendo duplicatas

func PrintSummary

func PrintSummary(groups []FileGroup)

PrintSummary exibe um resumo das duplicatas encontradas

Types

type Config

type Config struct {
	Dir       string
	Checksum  string
	MinSize   int64
	BackupDir string
	DryRun    bool
	JSON      bool
	Version   bool
	Yes       bool
}

Config representa a configuração da aplicação

type DeduplicatorHasher

type DeduplicatorHasher struct {
	// contains filtered or unexported fields
}

DeduplicatorHasher é responsável por agrupar arquivos por checksum

func NewDeduplicatorHasher

func NewDeduplicatorHasher(algorithm string) *DeduplicatorHasher

NewDeduplicatorHasher cria uma nova instância do hasher para deduplicação

func (*DeduplicatorHasher) GroupByChecksum

func (h *DeduplicatorHasher) GroupByChecksum(files []FileInfo) ([]FileGroup, error)

GroupByChecksum agrupa arquivos por checksum

type FileGroup

type FileGroup struct {
	Checksum string
	Files    []FileInfo
	Size     int64
}

FileGroup representa um grupo de arquivos com o mesmo checksum

func FilterDuplicates

func FilterDuplicates(groups []FileGroup) []FileGroup

FilterDuplicates retorna apenas grupos que contêm duplicatas (mais de um arquivo)

type FileInfo

type FileInfo struct {
	Path    string
	Size    int64
	ModTime time.Time
}

FileInfo representa informações básicas de um arquivo

type GitignoreManager

type GitignoreManager struct {
	// contains filtered or unexported fields
}

GitignoreManager gerencia as regras do .gitignore

func NewGitignoreManager

func NewGitignoreManager() *GitignoreManager

NewGitignoreManager cria uma nova instância do gerenciador de .gitignore

func (*GitignoreManager) GetRules

func (g *GitignoreManager) GetRules() []string

GetRules retorna as regras carregadas (para debug)

func (*GitignoreManager) LoadGitignore

func (g *GitignoreManager) LoadGitignore(rootDir string) error

LoadGitignore carrega as regras do arquivo .gitignore

func (*GitignoreManager) ShouldIgnore

func (g *GitignoreManager) ShouldIgnore(path, rootDir string) bool

ShouldIgnore verifica se um caminho deve ser ignorado

type Hasher

type Hasher struct {
	// contains filtered or unexported fields
}

Hasher é responsável por calcular checksums de arquivos

func NewHasher

func NewHasher(algorithm string) *Hasher

NewHasher cria uma nova instância do hasher

func (*Hasher) CalculateChecksum

func (h *Hasher) CalculateChecksum(filePath string) (string, error)

CalculateChecksum calcula o checksum de um arquivo

func (*Hasher) GetAlgorithm

func (h *Hasher) GetAlgorithm() string

GetAlgorithm retorna o algoritmo atual

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager é responsável por gerenciar backups de arquivos duplicados

func NewManager

func NewManager(backupDir string, yes bool) *Manager

NewManager cria uma nova instância do gerenciador de backup

func (*Manager) ProcessDuplicates

func (m *Manager) ProcessDuplicates(groups []FileGroup) error

ProcessDuplicates processa as duplicatas e move para backup

type Menu struct {
	// contains filtered or unexported fields
}

Menu representa o menu interativo

func NewMenu

func NewMenu(config *Config) *Menu

NewMenu cria uma nova instância do menu

func (m *Menu) Run()

Run executa o menu interativo

type Scanner

type Scanner struct {
	// contains filtered or unexported fields
}

Scanner é responsável por escanear diretórios e encontrar arquivos

func NewScanner

func NewScanner(minSize int64) *Scanner

NewScanner cria uma nova instância do scanner

func (*Scanner) GetIgnoredRules

func (s *Scanner) GetIgnoredRules() []string

GetIgnoredRules retorna as regras do .gitignore carregadas (para debug)

func (*Scanner) ScanDirectory

func (s *Scanner) ScanDirectory(root string) ([]FileInfo, error)

ScanDirectory escaneia recursivamente um diretório e retorna informações dos arquivos

func (*Scanner) ScanFromStdin

func (s *Scanner) ScanFromStdin() ([]FileInfo, error)

ScanFromStdin lê uma lista de caminhos de arquivos do stdin

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL