mirror of
https://github.com/tnypxl/rollup.git
synced 2025-12-15 15:03:17 +00:00
remove check for file_extensions configuration. show progress indication after 5 seconds.
This commit is contained in:
49
cmd/files.go
49
cmd/files.go
@@ -146,6 +146,11 @@ func runRollup(cfg *config.Config) error {
|
|||||||
}
|
}
|
||||||
defer outputFile.Close()
|
defer outputFile.Close()
|
||||||
|
|
||||||
|
startTime := time.Now()
|
||||||
|
showProgress := false
|
||||||
|
progressTicker := time.NewTicker(500 * time.Millisecond)
|
||||||
|
defer progressTicker.Stop()
|
||||||
|
|
||||||
// Walk through the directory
|
// Walk through the directory
|
||||||
err = filepath.Walk(absPath, func(path string, info os.FileInfo, err error) error {
|
err = filepath.Walk(absPath, func(path string, info os.FileInfo, err error) error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -161,16 +166,25 @@ func runRollup(cfg *config.Config) error {
|
|||||||
|
|
||||||
// Check if the file should be ignored
|
// Check if the file should be ignored
|
||||||
if isIgnored(relPath, ignoreList) {
|
if isIgnored(relPath, ignoreList) {
|
||||||
|
if verbose {
|
||||||
|
fmt.Printf("Ignoring file: %s\n", relPath)
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
ext := filepath.Ext(path)
|
ext := filepath.Ext(path)
|
||||||
for _, t := range types {
|
for _, t := range types {
|
||||||
if ext == "."+t {
|
if ext == "."+t {
|
||||||
|
// Verbose logging for processed file
|
||||||
|
if verbose {
|
||||||
|
size := humanReadableSize(info.Size())
|
||||||
|
fmt.Printf("Processing file: %s (%s)\n", relPath, size)
|
||||||
|
}
|
||||||
|
|
||||||
// Read file contents
|
// Read file contents
|
||||||
content, err := os.ReadFile(path)
|
content, err := os.ReadFile(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error reading file %s: %v", path, err)
|
fmt.Printf("Error reading file %s: %v\n", path, err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,12 +200,43 @@ func runRollup(cfg *config.Config) error {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !showProgress && time.Since(startTime) > 5*time.Second {
|
||||||
|
showProgress = true
|
||||||
|
fmt.Print("This is taking a while (hold tight) ")
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
case <-progressTicker.C:
|
||||||
|
if showProgress {
|
||||||
|
fmt.Print(".")
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error walking through directory: %v", err)
|
return fmt.Errorf("error walking through directory: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Printf("Rollup complete. Output file: %s", outputFileName)
|
if showProgress {
|
||||||
|
fmt.Println() // Print a newline after the progress dots
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("Rollup complete. Output file: %s\n", outputFileName)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func humanReadableSize(size int64) string {
|
||||||
|
const unit = 1024
|
||||||
|
if size < unit {
|
||||||
|
return fmt.Sprintf("%d B", size)
|
||||||
|
}
|
||||||
|
div, exp := int64(unit), 0
|
||||||
|
for n := size / unit; n >= unit; n /= unit {
|
||||||
|
div *= unit
|
||||||
|
exp++
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%.1f %cB", float64(size)/float64(div), "KMGTPE"[exp])
|
||||||
|
}
|
||||||
|
|||||||
25
cmd/web.go
25
cmd/web.go
@@ -114,7 +114,32 @@ func runWeb(cmd *cobra.Command, args []string) error {
|
|||||||
outputType, requestsPerSecond, burstLimit)
|
outputType, requestsPerSecond, burstLimit)
|
||||||
|
|
||||||
logger.Println("Starting scraping process")
|
logger.Println("Starting scraping process")
|
||||||
|
startTime := time.Now()
|
||||||
|
progressTicker := time.NewTicker(time.Second)
|
||||||
|
defer progressTicker.Stop()
|
||||||
|
|
||||||
|
done := make(chan bool)
|
||||||
|
messagePrinted := false
|
||||||
|
go func() {
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-progressTicker.C:
|
||||||
|
if time.Since(startTime) > 5*time.Second && !messagePrinted {
|
||||||
|
fmt.Print("This is taking a while (hold tight) ")
|
||||||
|
messagePrinted = true
|
||||||
|
} else if messagePrinted {
|
||||||
|
fmt.Print(".")
|
||||||
|
}
|
||||||
|
case <-done:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
scrapedContent, err := scraper.ScrapeSites(scraperConfig)
|
scrapedContent, err := scraper.ScrapeSites(scraperConfig)
|
||||||
|
done <- true
|
||||||
|
fmt.Println() // New line after progress indicator
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Printf("Error occurred during scraping: %v", err)
|
logger.Printf("Error occurred during scraping: %v", err)
|
||||||
return fmt.Errorf("error scraping content: %v", err)
|
return fmt.Errorf("error scraping content: %v", err)
|
||||||
|
|||||||
@@ -87,10 +87,6 @@ func Load(configPath string) (*Config, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Config) Validate() error {
|
func (c *Config) Validate() error {
|
||||||
if len(c.FileExtensions) == 0 {
|
|
||||||
return fmt.Errorf("at least one file extension must be specified")
|
|
||||||
}
|
|
||||||
|
|
||||||
if c.RequestsPerSecond != nil && *c.RequestsPerSecond <= 0 {
|
if c.RequestsPerSecond != nil && *c.RequestsPerSecond <= 0 {
|
||||||
return fmt.Errorf("requests_per_second must be positive")
|
return fmt.Errorf("requests_per_second must be positive")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user