switched out make for just
This commit is contained in:
124
justfile
Normal file
124
justfile
Normal file
@@ -0,0 +1,124 @@
|
||||
entrypoint := 'oslstats'
|
||||
cwd := justfile_directory()
|
||||
cmd := cwd / 'cmd'
|
||||
bin := cwd / 'bin'
|
||||
css_dir := cwd / 'internal/embedfs/web/css'
|
||||
|
||||
set quiet := true
|
||||
|
||||
[private]
|
||||
default:
|
||||
@just --list --unsorted
|
||||
|
||||
# BUILD RECIPES
|
||||
|
||||
# Build the target binary
|
||||
[group('build')]
|
||||
build target=entrypoint: tailwind (_build target)
|
||||
|
||||
_build target=entrypoint: tidy (generate target)
|
||||
go build -ldflags="-w -s" -o {{bin}}/{{target}} {{cmd}}/{{target}}
|
||||
|
||||
|
||||
# Generate tailwind output file
|
||||
[group('build')]
|
||||
[arg('watch', pattern='--watch|')]
|
||||
tailwind watch='':
|
||||
tailwindcss -i {{css_dir}}/input.css -o {{css_dir}}/output.css {{watch}}
|
||||
|
||||
# Generate go source files
|
||||
[group('build')]
|
||||
generate target=entrypoint:
|
||||
go generate {{cmd}}/{{target}}
|
||||
|
||||
# Generate templ files
|
||||
[group('build')]
|
||||
[arg('watch', pattern='--watch|')]
|
||||
templ watch='':
|
||||
templ generate {{watch}}
|
||||
|
||||
# RUN RECIPES
|
||||
|
||||
# Run the target binary
|
||||
[group('run')]
|
||||
run target=entrypoint: (build target)
|
||||
./bin/{{target}}
|
||||
|
||||
[private]
|
||||
_air:
|
||||
air
|
||||
|
||||
# Run the main program in development mode (with air & hot reloading)
|
||||
[group('run')]
|
||||
[parallel]
|
||||
dev: (templ '--watch') (tailwind '--watch') _air
|
||||
|
||||
# GO RECIPES
|
||||
|
||||
# Tidy go mod file
|
||||
[group('go')]
|
||||
tidy:
|
||||
go mod tidy
|
||||
|
||||
# Get or update h/golib packages
|
||||
[group('go')]
|
||||
[arg('update', pattern='-u|')]
|
||||
golib package update='': && tidy
|
||||
go get {{update}} git.haelnorr.com/h/golib/{{package}}
|
||||
|
||||
# ENV RECIPES
|
||||
|
||||
# Generate a new env file
|
||||
[group('env')]
|
||||
genenv out='.env': _build
|
||||
{{bin}}/{{entrypoint}} --genenv {{out}}
|
||||
|
||||
# Show env file documentation
|
||||
[group('env')]
|
||||
envdoc: _build
|
||||
{{bin}}/{{entrypoint}} --envdoc
|
||||
|
||||
# Show current env file values
|
||||
[group('env')]
|
||||
showenv: _build
|
||||
{{bin}}/{{entrypoint}} --showenv
|
||||
|
||||
# DB RECIPES
|
||||
|
||||
# Migrate the database
|
||||
[group('db')]
|
||||
[arg('command', pattern='up|down|new|status', help="up|down|new|status")]
|
||||
[script]
|
||||
migrate command subcommand='' env='.env': _build
|
||||
env={{env}}
|
||||
subcommand={{subcommand}}
|
||||
if [[ "{{command}}" = "status" ]]; then
|
||||
env=$subcommand
|
||||
subcommand=''
|
||||
fi
|
||||
if [[ $env = "" ]]; then
|
||||
env=.env
|
||||
fi
|
||||
ENVFILE=$env just _migrate-{{command}} $subcommand
|
||||
|
||||
[private]
|
||||
_migrate-up steps='1': && _migrate-status
|
||||
{{bin}}/{{entrypoint}} --migrate-up {{steps}} --envfile $ENVFILE
|
||||
|
||||
[private]
|
||||
_migrate-down steps='1': && _migrate-status
|
||||
{{bin}}/{{entrypoint}} --migrate-rollback {{steps}} --envfile $ENVFILE
|
||||
|
||||
[private]
|
||||
_migrate-status:
|
||||
{{bin}}/{{entrypoint}} --migrate-status --envfile $ENVFILE
|
||||
|
||||
[private]
|
||||
_migrate-new name:
|
||||
echo "Creating new migration {{name}}"
|
||||
|
||||
# Hard reset the database
|
||||
[group('db')]
|
||||
reset-db env='.env': _build
|
||||
echo "⚠️ WARNING - This will DELETE ALL DATA!"
|
||||
{{bin}}/{{entrypoint}} --reset-db --envfile {{env}}
|
||||
Reference in New Issue
Block a user