|
|
|
// +build mage
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"github.com/magefile/mage/mg"
|
|
|
|
"github.com/magefile/mage/sh"
|
|
|
|
)
|
|
|
|
|
|
|
|
func getRemotePackages() error {
|
|
|
|
var packages = []string{
|
|
|
|
"samhofi.us/x/keybase",
|
|
|
|
"github.com/awesome-gocui/gocui",
|
|
|
|
"github.com/magefile/mage/mage",
|
|
|
|
"github.com/magefile/mage/mg",
|
|
|
|
"github.com/magefile/mage/sh",
|
|
|
|
"github.com/pelletier/go-toml",
|
|
|
|
}
|
|
|
|
for _, p := range packages {
|
|
|
|
if err := sh.Run("go", "get", "-u", p); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// proper error reporting and exit code
|
|
|
|
func exit(err error) {
|
|
|
|
if err != nil {
|
|
|
|
fmt.Fprintf(os.Stderr, "%+v\n", err)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Build kbtui with just the basic commands.
|
|
|
|
func Build() {
|
|
|
|
mg.Deps(getRemotePackages)
|
|
|
|
if err := sh.Run("go", "build"); err != nil {
|
|
|
|
defer func() {
|
|
|
|
exit(err)
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Build kbtui with the basic commands, and the ShowReactions "TypeCommand".
|
|
|
|
// The ShowReactions TypeCommand will print a message in the feed window when
|
|
|
|
// a reaction is received in the current conversation.
|
|
|
|
func BuildShowReactions() {
|
|
|
|
mg.Deps(getRemotePackages)
|
|
|
|
if err := sh.Run("go", "build", "-tags", "showreactionscmd"); err != nil {
|
|
|
|
defer func() {
|
|
|
|
exit(err)
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Build kbtui with the basec commands, and the AutoReact "TypeCommand".
|
|
|
|
// The AutoReact TypeCommand will automatically react to every message
|
|
|
|
// received in the current conversation. This gets pretty annoying, and
|
|
|
|
// is not recommended.
|
|
|
|
func BuildAutoReact() {
|
|
|
|
mg.Deps(getRemotePackages)
|
|
|
|
if err := sh.Run("go", "build", "-tags", "autoreactcmd"); err != nil {
|
|
|
|
defer func() {
|
|
|
|
exit(err)
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Build kbtui with all commands and TypeCommands disabled.
|
|
|
|
func BuildAllCommands() {
|
|
|
|
mg.Deps(getRemotePackages)
|
|
|
|
if err := sh.Run("go", "build", "-tags", "allcommands"); err != nil {
|
|
|
|
defer func() {
|
|
|
|
exit(err)
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Build kbtui with all Commands and TypeCommands enabled.
|
|
|
|
func BuildAllCommandsT() {
|
|
|
|
mg.Deps(getRemotePackages)
|
|
|
|
if err := sh.Run("go", "build", "-tags", "type_commands,allcommands"); err != nil {
|
|
|
|
defer func() {
|
|
|
|
exit(err)
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Build kbtui with beta functionality
|
|
|
|
func BuildBeta() {
|
|
|
|
mg.Deps(getRemotePackages)
|
|
|
|
if err := sh.Run("go", "build", "-tags", "allcommands,showreactionscmd,emojiList,tabcompletion"); err != nil {
|
|
|
|
defer func() {
|
|
|
|
exit(err)
|
|
|
|
}()
|
|
|
|
}
|
|
|
|
}
|