MapyWeb/pgsql/setup.go
2021-09-19 18:25:05 -07:00

88 lines
1.7 KiB
Go

package main
import (
"os"
pgsql "github.com/fergusstrange/embedded-postgres"
"github.com/jmoiron/sqlx"
"github.com/rs/zerolog/log"
)
var accountsSchema = `create table accounts
(
id serial
constraint accounts_pkey
primary key,
username varchar(13) not null,
password varchar(18) not null,
creation date not null,
last_login date not null,
last_ip varchar not null,
ban integer not null,
admin integer not null,
gender smallint default 0 not null
);`
var authlog *SecurityLog
func init() {
var err error
postgresInit()
if authlog, err = GetUserAuths("./data/authlog"); err != nil {
panic(err)
}
}
func postgresInit() {
pgconf := pgsql.DefaultConfig()
pgconf.DataPath("./data/pgsql")
pgconf.BinariesPath("./postgresql")
pgconf.Logger(sqlLog{})
pgconf.Database("maplestory")
postgres = pgsql.NewDatabase()
if err := postgres.Start(); err != nil {
panic(err)
}
}
func install(db *sqlx.DB) {
db.MustExec(accountsSchema)
println("User table installed!")
}
type sqlLog struct{}
func (sqlLog) Write(p []byte) (n int, err error) {
log.Debug().Str("caller", "postgresql").Msg(string(p))
return len(p), nil
}
func argParse() {
var kayos *User
var err error
for _, arg := range os.Args {
if arg == "--install" {
install(db)
return
}
if arg == "--regkayos" {
if err := RegisterNewUser("kayos", "yeet", "127.0.0.1", 0, true); err != nil {
panic(err)
}
return
}
if arg == "--loginkayos" {
if kayos, err = AttemptWebLogin(
"kayos",
"yeet",
"192.168.69.5",
"yeetBrowser 420"); err != nil {
panic(err)
}
println(kayos.Password)
}
}
}