74 lines
1.5 KiB
Go
Raw Normal View History

package main
import (
"fmt"
"strings"
"github.com/pborman/getopt"
"path/filepath"
"os"
"time"
"net/http"
)
var last_check = time.Now()
var new_last_check = time.Now()
func main() {
webhook_url, path := parse_options()
fmt.Println(webhook_url, path)
// wander the path, forever
for {
err := filepath.Walk(path, check_file)
if err != nil { fmt.Printf("SHIT ERROR") }
//fmt.Printf("filepath.Walk() returned %v\n", err)
last_check = new_last_check
time.Sleep(500 * time.Millisecond)
}
}
func parse_options() (webhook_url string, path string) {
// Declare the flags to be used
// helpFlag := getopt.Bool('h', "display help")
webhookFlag := getopt.StringLong("webhook", 'w', "", "webhook URL")
pathFlag := getopt.StringLong("directory", 'd', "", "directory")
getopt.Parse()
return *webhookFlag, *pathFlag
}
func check_file(path string, f os.FileInfo, err error) error {
// fmt.Println("Comparing", f.ModTime(), "to", last_check, "for", path)
if f.ModTime().After(last_check) && f.Mode().IsRegular() {
fmt.Println("YES", path, "is new")
if file_eligible(path) {
// process file
process_file(path)
}
if new_last_check.Before(f.ModTime()) {
new_last_check = f.ModTime()
}
}
return nil
}
func file_eligible(file string) (bool) {
extension := strings.ToLower(filepath.Ext(file))
if extension == ".png" || extension == ".jpg" || extension == ".gif" {
return true
}
return false
}
func process_file(file string) {
fmt.Println("Uploading", file)
}