Add CLI flags
This commit is contained in:
23
main.go
23
main.go
@@ -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))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user