Add CLI flags

This commit is contained in:
2024-12-30 06:03:25 -07:00
parent 5ed6b120d3
commit fa6008d854
3 changed files with 29 additions and 12 deletions

23
main.go
View File

@@ -1,7 +1,10 @@
package main
import (
"flag"
"fmt"
"log"
"os"
"time"
"github.com/cwpearson/reddit-images/rate_limit"
@@ -10,12 +13,16 @@ import (
func main() {
subreddits := []string{
"pics",
"oldschoolcool",
"thewaywewere",
"MilitaryPorn",
"EarthPorn",
// Define and parse flags
every := flag.Int64("every", 60*30, "Optional: Run every N seconds")
outDir := flag.String("out-dir", "subreddits", "Optional: Output directory path")
flag.Parse()
subreddits := flag.Args()
if len(subreddits) == 0 {
fmt.Fprintf(os.Stderr, "Error: At least one string argument is required\n\n")
fmt.Fprintf(os.Stderr, "Usage: %s [--every N] [--out-dir path] string1 [string2 ...]\n", os.Args[0])
os.Exit(1)
}
rl := rate_limit.NewRateLimit()
@@ -23,10 +30,10 @@ func main() {
for {
for _, subreddit := range subreddits {
r := reddit.NewReddit(rl, subreddit)
r.Get()
r.Get(*outDir)
}
when := time.Now().Add(time.Minute * time.Duration(30))
when := time.Now().Add(time.Second * time.Duration(*every))
log.Println("sleep until", when)
time.Sleep(time.Until(when))
}