Documentation
ยถ
Index ยถ
Constants ยถ
This section is empty.
Variables ยถ
This section is empty.
Functions ยถ
func GetDefaultBaseDir ยถ
GetDefaultBaseDir returns the default base directory ($HOME for Linux/Unix)
Types ยถ
type DirectoryEntry ยถ
type DirectoryEntry struct {
Name string `json:"name"` // Name of the file or directory
Path string `json:"path"` // Full path
IsDir bool `json:"isDir"` // True if directory
Size int64 `json:"size"` // Size in bytes
}
DirectoryEntry represents a single directory or file entry for listing
type FileMetadata ยถ
type FileMetadata struct {
Path string `json:"path"` // Full absolute path
Name string `json:"name"` // File or directory name
Size int64 `json:"size"` // Size in bytes (0 for directories)
IsDir bool `json:"isDir"` // True if directory
Mode string `json:"mode"` // Permission mode (e.g., "0755")
ModTime time.Time `json:"modTime"` // Last modification time
AccessTime time.Time `json:"accessTime"` // Last access time (if available)
ChangeTime time.Time `json:"changeTime"` // Last status change time (if available)
Owner string `json:"owner"` // Owner user ID
Group string `json:"group"` // Group ID
MimeType string `json:"mimeType"` // MIME type (for files)
Extension string `json:"extension"` // File extension (e.g., ".txt")
IsSymlink bool `json:"isSymlink"` // True if symbolic link
SymlinkTarget string `json:"symlinkTarget"` // Target if symbolic link
Checksum string `json:"checksum"` // Optional checksum (MD5/SHA256)
}
FileMetadata represents comprehensive metadata for a file or directory
func CollectFileList ยถ
func CollectFileList(options ScanOptions) ([]FileMetadata, error)
CollectFileList collects detailed metadata for all files in a directory This is used when creating a migration plan
func ExtractFileMetadata ยถ
func ExtractFileMetadata(path string, collectChecksum bool) (*FileMetadata, error)
ExtractFileMetadata extracts comprehensive metadata for a file or directory
type FilterOptions ยถ
type FilterOptions struct {
IncludePatterns []string `json:"includePatterns"` // Patterns to include (e.g., "*.txt", "data/**")
ExcludePatterns []string `json:"excludePatterns"` // Patterns to exclude (e.g., "*.log", "temp/*")
}
FilterOptions defines include/exclude filter settings
type MigrationPlan ยถ
type MigrationPlan struct {
SourceDir string `json:"sourceDir"` // Source directory path
IncludeSubDir bool `json:"includeSubDir"` // Include subdirectories
FilterOptions FilterOptions `json:"filterOptions"` // Filter settings
TotalFiles int `json:"totalFiles"` // Number of files to migrate
TotalSize int64 `json:"totalSize"` // Total size to migrate
FileList []FileMetadata `json:"fileList"` // List of files to migrate
CreatedAt time.Time `json:"createdAt"` // When the plan was created
}
MigrationPlan represents the migration plan configuration
func CreateMigrationPlan ยถ
func CreateMigrationPlan(sourceDir string, includeSubDir bool, filters FilterOptions) (*MigrationPlan, error)
CreateMigrationPlan creates a migration plan based on user's selection
type ScanOptions ยถ
type ScanOptions struct {
BaseDir string `json:"baseDir"` // Base directory to scan (defaults to $HOME)
Recursive bool `json:"recursive"` // Include subdirectories
FollowSymlinks bool `json:"followSymlinks"` // Follow symbolic links
IncludeHidden bool `json:"includeHidden"` // Include hidden files (starting with .)
MaxDepth int `json:"maxDepth"` // Maximum recursion depth (0 = unlimited)
CollectChecksum bool `json:"collectChecksum"` // Calculate file checksums (expensive)
IncludePatterns []string `json:"includePatterns"` // Include patterns (whitelist)
ExcludePatterns []string `json:"excludePatterns"` // Exclude patterns (blacklist)
}
ScanOptions defines options for scanning directories
type ScanResult ยถ
type ScanResult struct {
BaseDir string `json:"baseDir"` // Base directory scanned
Entries []DirectoryEntry `json:"entries"` // Immediate entries (files + dirs)
TotalFiles int `json:"totalFiles"` // Total file count (recursive)
TotalDirs int `json:"totalDirs"` // Total directory count (recursive)
TotalSize int64 `json:"totalSize"` // Total size in bytes (recursive)
ScanTime time.Time `json:"scanTime"` // When the scan was performed
IncludeSubDir bool `json:"includeSubDir"` // Whether subdirectories were included
}
ScanResult contains the results of a directory scan
func ListDirectory ยถ
func ListDirectory(path string) (*ScanResult, error)
ListDirectory lists immediate files and subdirectories in the given path This is the main function for UI-driven directory browsing
func ScanDirectory ยถ
func ScanDirectory(options ScanOptions) (*ScanResult, error)
ScanDirectory performs a comprehensive scan of a directory with optional recursion This is used when user confirms migration target and needs full file list