File tree Expand file tree Collapse file tree 9 files changed +96
-57
lines changed Expand file tree Collapse file tree 9 files changed +96
-57
lines changed Original file line number Diff line number Diff line change
1
+ if ! has nix; then
2
+ echo -e " \033[31mWARNING: Nix is not installed!\033[0m"
3
+ echo -e " \033[31mWe recommend using Determinate Nix Installer to get started: https://determinate.systems/nix-installer/\033[0m"
4
+ exit 1
5
+ fi
6
+
7
+ watch_file nix/shell.nix
1
8
use flake
9
+
10
+ if ! has nix-direnv-reload; then
11
+ echo -e " \033[31mWARNING: nix-direnv is recommended for better performance and caching.\033[0m"
12
+ echo -e " \033[31mTo install, see https://github.com/nix-community/nix-direnv\033[0m"
13
+ fi
Original file line number Diff line number Diff line change 32
32
run : nix develop -c make check
33
33
34
34
- name : Sql check
35
- run : nix develop -c make sql- check
35
+ run : nix develop -c make check-sql
36
36
37
37
- name : Build
38
38
run : nix develop -c make build
Original file line number Diff line number Diff line change 2
2
3
3
BIN_DIR := bin
4
4
APP_NAME := api
5
- CLI_NAME := cli
5
+ CLI_NAME := csuf
6
6
7
7
GENERATE_DEPS := $(wildcard internal/db/sql/schemas/* .sql) $(wildcard internal/db/sql/queries/* .sql) $(wildcard sqlc.yaml)
8
8
GENERATE_MARKER := .generate.marker
9
9
10
- .PHONY :fmt vet run build check test sql- check sql- fix clean build-cli
10
+ .PHONY :fmt run build check test check-sql fix-sql clean
11
11
12
12
fmt :
13
13
@go fmt ./...
14
14
15
+ VERSION := $(shell git describe --tags --always --dirty 2> /dev/null || echo "dev")
16
+
15
17
$(GENERATE_MARKER ) : $(GENERATE_DEPS )
16
18
go generate ./...
17
19
@touch $@
18
20
19
21
generate : fmt $(GENERATE_MARKER )
20
22
21
- vet : fmt
22
- go vet ./...
23
-
24
23
run : build
25
24
./$(BIN_DIR ) /$(APP_NAME )
26
25
27
26
build : generate
28
- mkdir -p $(BIN_DIR )
29
- go build -o $(BIN_DIR ) /$(APP_NAME ) ./cmd/api
27
+ @mkdir -p $(BIN_DIR )
28
+ go build -ldflags " -X main.Version=$( VERSION) " -o $(BIN_DIR ) /$(APP_NAME ) ./cmd/api
29
+ go build -ldflags " -X main.Version=$( VERSION) " -o $(BIN_DIR ) /$(CLI_NAME ) ./cmd/csuf
30
30
31
- check : vet
31
+ check :
32
+ go vet ./...
32
33
nilaway ./...
33
34
34
35
test : check
35
36
go test ./...
36
37
37
- sql- check :
38
+ check-sql :
38
39
sqlfluff lint --dialect sqlite
39
40
40
- sql-fix :
41
- sqlfluff format --dialect sqlite
41
+ fix-sql :
42
42
sqlfluff fix --dialect sqlite
43
43
44
+ release :
45
+ @echo " Current version: $( VERSION) "
46
+ @read -p " Enter new version (e.g., v0.2.0): " version; \
47
+ git tag -a $$ version -m " Release $$ version" ; \
48
+ git push origin $$ version; \
49
+ echo " Tagged $$ version."
50
+
44
51
clean :
45
52
go clean
46
53
rm -f $(GENERATE_MARKER )
47
- rm -rf $(BIN_DIR )
48
-
49
- build-cli : fmt
50
- mkdir -p $(BIN_DIR )
51
- go build -o $(BIN_DIR ) /$(CLI_NAME ) ./cmd/csuf
54
+ rm -rf $(BIN_DIR ) result
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package main
2
2
3
3
import (
4
4
"context"
5
+ "flag"
5
6
"fmt"
6
7
"log"
7
8
"os"
@@ -21,7 +22,18 @@ import (
21
22
ginSwagger "github.com/swaggo/gin-swagger"
22
23
)
23
24
25
+ var Version = "dev"
26
+
24
27
func main () {
28
+
29
+ var showVersion = flag .Bool ("version" , false , "Show version" )
30
+ flag .Parse ()
31
+
32
+ if * showVersion {
33
+ fmt .Printf ("Version: %s\n " , Version )
34
+ os .Exit (0 )
35
+ }
36
+
25
37
ctx , cancel := context .WithCancel (context .Background ())
26
38
defer cancel ()
27
39
Load Diff This file was deleted.
Original file line number Diff line number Diff line change 1
1
package main
2
2
3
- import "github.com/acmcsufoss/api.acmcsuf.com/cmd/csuf/cmd"
4
-
5
3
// Initalizing cobra here
6
4
// To use the CLI, first, cd into this directory (/api.acmcsuf.com/cmd/csuf)
7
5
// Next, run: go install .
8
6
// Now, if you have not already, export the go bin path: export PATH="$HOME/go/bin:$PATH"
9
7
// Now type csuf in your command line and see what happens!
8
+
9
+ import (
10
+ "log"
11
+ "os"
12
+
13
+ "github.com/acmcsufoss/api.acmcsuf.com/internal/cli/announcements"
14
+ "github.com/acmcsufoss/api.acmcsuf.com/internal/cli/events"
15
+
16
+ "github.com/spf13/cobra"
17
+ )
18
+
19
+ var Version = "dev"
20
+
21
+ var rootCmd = & cobra.Command {
22
+ Use : "csuf" ,
23
+ Short : "A CLI tool to help manage the API of the CSUF ACM website" ,
24
+ Version : Version ,
25
+ }
26
+
27
+ func Execute () {
28
+ // Logging the error, prefix is date, time, and what file the log is from
29
+ log .SetFlags (log .Ldate | log .Ltime | log .Lshortfile )
30
+
31
+ if err := rootCmd .Execute (); err != nil {
32
+ log .Println ("Error with CLI:" , err )
33
+ os .Exit (1 )
34
+ }
35
+ }
36
+
37
+ func init () {
38
+ rootCmd .AddCommand (events .CLIEvents )
39
+ rootCmd .AddCommand (announcements .CLIAnnouncements )
40
+ }
41
+
10
42
func main () {
11
- cmd . Execute ()
43
+ Execute ()
12
44
}
Original file line number Diff line number Diff line change 14
14
flake-utils . lib . eachDefaultSystem (
15
15
system : let
16
16
pkgs = nixpkgs . legacyPackages . ${ system } ;
17
- package = pkgs . callPackage ./nix/package.nix { } ;
17
+
18
+ version =
19
+ if ( self ? rev )
20
+ then builtins . substring 0 8 self . rev
21
+ else "dev" ;
22
+
23
+ package = pkgs . callPackage ./nix/package.nix {
24
+ version = version ;
25
+ } ;
18
26
in {
19
27
packages . default = package ;
20
- devShells . default = pkgs . callPackage ./nix/devShell .nix { } ;
28
+ devShells . default = pkgs . callPackage ./nix/shell .nix { } ;
21
29
22
30
apps = {
23
31
default = {
Original file line number Diff line number Diff line change 1
1
{
2
+ version ,
2
3
lib ,
3
4
buildGoModule ,
4
5
} :
5
6
buildGoModule {
6
7
name = "api-acmcsuf" ;
7
8
src = ../. ;
9
+ version = version ;
8
10
vendorHash = "sha256-3BpLbfoLmv5dwBxEHW7i//MlgIsrGMT8ZILrze7WM18=" ;
9
-
10
11
postBuild = ''
11
12
mv $GOPATH/bin/api $GOPATH/bin/api-acmcsuf
12
13
'' ;
13
14
14
15
subPackages = [ "cmd/api" "cmd/csuf" ] ;
16
+ ldflags = [ "-X main.Version=${ version } " ] ;
15
17
16
18
meta = {
17
19
description = "API created and used by CSUF's ACM chapter" ;
Original file line number Diff line number Diff line change 13
13
xh ,
14
14
jq ,
15
15
go-swag ,
16
+ cobra-cli ,
16
17
} :
17
18
mkShell {
18
19
packages = [
@@ -29,11 +30,13 @@ mkShell {
29
30
xh
30
31
jq
31
32
go-swag
33
+ cobra-cli
32
34
] ;
33
35
34
36
shellHook = ''
35
37
export DATABASE_URL="file:dev.db?cache=shared&mode=rwc"
36
38
export CGO_ENABLED=0 # cgo compiler flags cause issues with delve when using Nix
37
- echo "Loaded dev shell."
39
+ export PATH="$PWD/bin:$PATH"
40
+ echo -e "\e[32mLoaded nix dev shell\e[0m"
38
41
'' ;
39
42
}
You can’t perform that action at this time.
0 commit comments