43 lines
743 B
Go
43 lines
743 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"log"
|
||
|
"os"
|
||
|
|
||
|
"crawshaw.io/sqlite"
|
||
|
"github.com/alexflint/go-arg"
|
||
|
sqliteStorage "github.com/anacrolix/torrent/storage/sqlite"
|
||
|
)
|
||
|
|
||
|
type InitCommand struct {
|
||
|
Path string `arg:"positional"`
|
||
|
}
|
||
|
|
||
|
func main() {
|
||
|
err := mainErr()
|
||
|
if err != nil {
|
||
|
log.Printf("error in main: %v", err)
|
||
|
os.Exit(1)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func mainErr() error {
|
||
|
var args struct {
|
||
|
Init *InitCommand `arg:"subcommand"`
|
||
|
}
|
||
|
p := arg.MustParse(&args)
|
||
|
switch {
|
||
|
case args.Init != nil:
|
||
|
conn, err := sqlite.OpenConn(args.Init.Path, 0)
|
||
|
if err != nil {
|
||
|
return fmt.Errorf("opening sqlite conn: %w", err)
|
||
|
}
|
||
|
defer conn.Close()
|
||
|
return sqliteStorage.InitSchema(conn, 1<<14, true)
|
||
|
default:
|
||
|
p.Fail("expected subcommand")
|
||
|
panic("unreachable")
|
||
|
}
|
||
|
}
|