package command

import (
	"fmt"
	"net/url"
)

type MysqlCmd struct{ ExecCmd }

func NewMysqlCmd() *MysqlCmd {
	return &MysqlCmd{ExecCmd: ExecCmd{Command: "mysql", Options: nil}}
}

func (m *MysqlCmd) Login(u *url.URL) *MysqlCmd {
	cmd := fmt.Sprintf("-u%s -h%s -P%s", u.User.Username(), u.Hostname(), u.Port())
	return &MysqlCmd{ExecCmd: ExecCmd{Command: cmd, Options: nil, ParentCmd: m}}
}

func (m *MysqlCmd) Sql(cmd string) *MysqlCmd {
	return &MysqlCmd{ExecCmd: ExecCmd{Command: "-e\"" + cmd + "\"", Options: nil, ParentCmd: m}}
}
