diff --git a/.gitignore b/.gitignore index 341952c..2ce0f7d 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ password.txt # Ignore Build build +release diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a76d669 --- /dev/null +++ b/Makefile @@ -0,0 +1,16 @@ +BINARY := godbledger +VERSION ?= latest +PLATFORMS := linux +os = $(word 1, $@) + +.PHONY: $(PLATFORMS) +$(PLATFORMS): + mkdir -p release/$(BINARY)-$(os)-x64-v$(VERSION)/ + GOOS=$(os) GOARCH=amd64 go build -o release/$(BINARY)-$(os)-x64-v$(VERSION)/ ./... + +.PHONY: release +release: linux + +PHONY: clean +clean: + rm -rf release/ diff --git a/godbledger/db/mysql/mysqldb.go b/godbledger/db/mysql/mysqldb.go index 2ad147a..13fd81a 100644 --- a/godbledger/db/mysql/mysqldb.go +++ b/godbledger/db/mysql/mysqldb.go @@ -51,7 +51,7 @@ func (db *Database) InitDB() error { //USERS createDB := ` CREATE TABLE IF NOT EXISTS users ( - user_id INT NOT NULL, + user_id VARCHAR(255) NOT NULL, username VARCHAR(255) NOT NULL, PRIMARY KEY(user_id) );` @@ -77,7 +77,7 @@ func (db *Database) InitDB() error { //TAGS createDB = ` CREATE TABLE IF NOT EXISTS tags ( - tag_id INTEGER PRIMARY KEY, + tag_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, tag_name VARCHAR(100) NOT NULL UNIQUE );` log.Debug("Query: " + createDB) diff --git a/godbledger/db/mysql/mysqlfuncs.go b/godbledger/db/mysql/mysqlfuncs.go index 6019934..9bfcdfe 100644 --- a/godbledger/db/mysql/mysqlfuncs.go +++ b/godbledger/db/mysql/mysqlfuncs.go @@ -102,7 +102,7 @@ func (db *Database) DeleteTransaction(txnID string) error { sqlStatement := ` DELETE FROM transactions - WHERE transaction_id = $1;` + WHERE transaction_id = ?;` _, err := db.DB.Exec(sqlStatement, txnID) if err != nil { return err @@ -114,7 +114,7 @@ func (db *Database) DeleteTransaction(txnID string) error { func (db *Database) FindTag(tag string) (int, error) { var resp int log.Info("Searching Tag in DB") - err := db.DB.QueryRow(`SELECT tag_id FROM tags WHERE tag_name = $1 LIMIT 1`, tag).Scan(&resp) + err := db.DB.QueryRow(`SELECT tag_id FROM tags WHERE tag_name = ? LIMIT 1`, tag).Scan(&resp) if err != nil { log.Debug("Find Tag Failed: ", err) return 0, err @@ -172,7 +172,7 @@ func (db *Database) SafeAddTagToAccount(account, tag string) error { tagID, _ := db.FindTag(tag) var accountID string - err = db.DB.QueryRow(`SELECT account_id FROM accounts WHERE name = $1 LIMIT 1`, account).Scan(&accountID) + err = db.DB.QueryRow(`SELECT account_id FROM accounts WHERE name = ? LIMIT 1`, account).Scan(&accountID) if err != nil { log.Debug(err) return err @@ -183,7 +183,7 @@ func (db *Database) SafeAddTagToAccount(account, tag string) error { func (db *Database) AddTagToAccount(accountID string, tag int) error { var exists int - err := db.DB.QueryRow(`SELECT EXISTS(SELECT * FROM account_tag where (account_id = $1) AND (tag_id = $2));`, accountID, tag).Scan(&exists) + err := db.DB.QueryRow(`SELECT EXISTS(SELECT * FROM account_tag where (account_id = ?) AND (tag_id = ?));`, accountID, tag).Scan(&exists) if err != nil { log.Debug(err) return err @@ -233,9 +233,9 @@ func (db *Database) DeleteTagFromAccount(account, tag string) error { sqlStatement := ` DELETE FROM account_tag WHERE - tag_id = $1 + tag_id = ? AND - account_id = $2 + account_id = ? ;` _, err = db.DB.Exec(sqlStatement, tagID, account) if err != nil { @@ -247,8 +247,8 @@ func (db *Database) DeleteTagFromAccount(account, tag string) error { func (db *Database) FindCurrency(cur string) (*core.Currency, error) { var resp core.Currency - log.Info("Searching Currency in DB") - err := db.DB.QueryRow(`SELECT * FROM currencies WHERE name = $1 LIMIT 1`, cur).Scan(&resp.Name, &resp.Decimals) + log.Info("Searching Currency in DB: ", cur) + err := db.DB.QueryRow(`SELECT * FROM currencies WHERE name = ? LIMIT 1`, cur).Scan(&resp.Name, &resp.Decimals) if err != nil { return nil, err } @@ -295,7 +295,7 @@ func (db *Database) SafeAddCurrency(cur *core.Currency) error { func (db *Database) FindAccount(code string) (*core.Account, error) { var resp core.Account log.Info("Searching Account in DB") - err := db.DB.QueryRow(`SELECT * FROM accounts WHERE account_id = $1 LIMIT 1`, code).Scan(&resp.Code, &resp.Name) + err := db.DB.QueryRow(`SELECT * FROM accounts WHERE account_id = ? LIMIT 1`, code).Scan(&resp.Code, &resp.Name) if err != nil { return nil, err } @@ -343,7 +343,7 @@ func (db *Database) SafeAddAccount(acc *core.Account) error { func (db *Database) FindUser(pubKey string) (*core.User, error) { var resp core.User log.Info("Searching User in DB") - err := db.DB.QueryRow(`SELECT * FROM users WHERE username = $1 LIMIT 1`, pubKey).Scan(&resp.Id, &resp.Name) + err := db.DB.QueryRow(`SELECT * FROM users WHERE username = ? LIMIT 1`, pubKey).Scan(&resp.Id, &resp.Name) if err != nil { return nil, err } diff --git a/reporter/trialbalance.go b/reporter/trialbalance.go index 451fadc..cf92bf7 100644 --- a/reporter/trialbalance.go +++ b/reporter/trialbalance.go @@ -50,7 +50,7 @@ If you want to see all the transactions in the database, or export to CSV panic(fmt.Sprintf("Database does not already exist at %s.", databasefilepath)) } - SqliteDB, err := sql.Open("sqlite3", databasefilepath) + DB, err := sql.Open(cfg.DatabaseType, databasefilepath) if err != nil { log.Fatal(err) } @@ -68,7 +68,7 @@ If you want to see all the transactions in the database, or export to CSV GROUP BY split_accounts.account_id ;` - rows, err := SqliteDB.Query(queryDB) + rows, err := DB.Query(queryDB) if err != nil { log.Fatal(err) } diff --git a/utils/make-release.sh b/utils/make-release.sh old mode 100644 new mode 100755 index 4d977c1..be602cb --- a/utils/make-release.sh +++ b/utils/make-release.sh @@ -1,6 +1,7 @@ #!/bin/bash version=$1 +build=linux if [ -z "$version" ] then @@ -8,14 +9,16 @@ then exit fi -WORKING_DIR=godbledger-$version +make VERSION=$version release + +WORKING_DIR=release/ echo "Working in $WORKING_DIR..." mkdir -p $WORKING_DIR cd $WORKING_DIR -tar -czvf godbledger-$build-x64-$version.tar.gz godbledger-$build-x64-$version +tar -czvf godbledger-$build-x64-v$version.tar.gz godbledger-$build-x64-v$version echo '#### sha256sum' -sha256sum godbledger-*-x64-$version.zip +sha256sum godbledger-*-x64-v$version.tar.gz