diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 82 |
1 files changed, 82 insertions, 0 deletions
@@ -0,0 +1,82 @@ +package main + +import ( + "database/sql" + "log" + "os" + + _ "github.com/mattn/go-sqlite3" +) + +// init GD - initialize a "gallery directory" that contains gallery.sqlite, +// images, thumbs. +func cmdInit(args []string) { + if len(args) != 1 { + log.Fatalln("usage: GD") + } + + gd := args[0] + + db, err := sql.Open("sqlite3", gd+"/foo.db") + if err != nil { + log.Fatalln(err) + } + + // TODO: Figure out a go generate to create a Go file to create the db. + _ = db +} + +// run GD ADDRESS - run a web UI against GD on ADDRESS +func cmdRun(args []string) { + // TODO: Use "public" from CWD for files. +} + +// import GD ROOT... - add files to the "entry" table +func cmdImport(args []string) { + // TODO +} + +// sync GD ROOT... - like import, but clear table beforehands +func cmdSync(args []string) { + // TODO +} + +// check GD - see if all files are accessible +func cmdCheck(args []string) { + // TODO +} + +// thumbnail GD [SHA1...] - generate missing thumbnails, in parallel +func cmdThumbnail(args []string) { + // TODO: Show progress. +} + +// dhash GD HASHER [SHA1...] - generate perceptual hash from thumbnails +func cmdDhash(args []string) { + // TODO +} + +var commands = map[string]struct { + handler func(args []string) +}{ + "init": {cmdInit}, + "run": {cmdRun}, + "import": {cmdImport}, + "sync": {cmdSync}, + "check": {cmdCheck}, + "thumbnail": {cmdThumbnail}, + "dhash": {cmdDhash}, +} + +func main() { + if len(os.Args) <= 2 { + log.Fatalln("Missing arguments") + } + + cmd, ok := commands[os.Args[1]] + if !ok { + log.Fatalln("Unknown command: " + os.Args[1]) + } + + cmd.handler(os.Args[2:]) +} |