From d0ccb94067ffc0b1236978b42a6a2a5f020eeb7b Mon Sep 17 00:00:00 2001 From: Ryan Brue Date: Sat, 24 Feb 2024 16:57:03 -0600 Subject: [PATCH] just --- Makefile | 50 --------------------------------------------- justfile | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 50 deletions(-) delete mode 100644 Makefile create mode 100644 justfile diff --git a/Makefile b/Makefile deleted file mode 100644 index 913ea94..0000000 --- a/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -prefix ?= /usr/local -polkit-agent-helper-1 ?= /usr/libexec/polkit-agent-helper-1 -bindir = $(prefix)/bin -libdir = $(prefix)/lib -includedir = $(prefix)/include -datarootdir = $(prefix)/share -datadir = $(datarootdir) - -TARGET = debug -DEBUG ?= 0 -ifeq ($(DEBUG),0) - TARGET = release - ARGS += --release -endif - -VENDOR ?= 0 -ifneq ($(VENDOR),0) - ARGS += --frozen -endif - -BIN = cosmic-osd - -all: $(BIN) - -clean: - rm -rf target - -distclean: clean - rm -rf .cargo vendor vendor.tar - -$(BIN): Cargo.toml Cargo.lock src/main.rs vendor-check - POLKIT_AGENT_HELPER_1=$(polkit-agent-helper-1) cargo build $(ARGS) --bin ${BIN} - -install: - install -Dm0755 target/$(TARGET)/$(BIN) $(DESTDIR)$(bindir)/$(BIN) - -## Cargo Vendoring - -vendor: - rm .cargo -rf - mkdir -p .cargo - cargo vendor | head -n -1 > .cargo/config - echo 'directory = "vendor"' >> .cargo/config - tar cf vendor.tar vendor - rm -rf vendor - -vendor-check: -ifeq ($(VENDOR),1) - rm vendor -rf && tar xf vendor.tar -endif diff --git a/justfile b/justfile new file mode 100644 index 0000000..2ecacdf --- /dev/null +++ b/justfile @@ -0,0 +1,62 @@ +name := 'cosmic-osd' + +polkit-agent-helper-1 := /usr/libexec/polkit-agent-helper-1 + +rootdir := '' +prefix := '/usr' + +base-dir := absolute_path(clean(rootdir / prefix)) + +bin-src := 'target' / 'release' / name +bin-dst := base-dir / 'bin' / name + +# Default recipe which runs `just build-release` +default: build-release + +# Runs `cargo clean` +clean: + cargo clean && rm -rf target + +# `cargo clean` and removes vendored dependencies +clean-dist: clean + rm -rf .cargo vendor vendor.tar + +# Compiles with debug profile +build-debug *args: + POLKIT_AGENT_HELPER_1={{polkit-agent-helper-1}} cargo build {{args}} $(ARGS) --bin {{name}} + +# Compiles with release profile +build-release *args: (build-debug '--release' args) + +# Compiles release profile with vendored dependencies +build-vendored *args: vendor-extract (build-release '--frozen --offline' args) + +# Runs a clippy check +check *args: + cargo clippy --all-features {{args}} -- -W clippy::pedantic + +# Runs a clippy check with JSON message format +check-json: (check '--message-format=json') + +# Installs files +install: + install -Dm0755 {{bin-src}} {{bin-dst}} + +# Uninstalls installed files +uninstall: + rm {{bin-dst}} + +# Vendor dependencies locally +vendor: + mkdir -p .cargo + cargo vendor --sync Cargo.toml \ + | head -n -1 > .cargo/config + echo 'directory = "vendor"' >> .cargo/config + tar pcf vendor.tar vendor + rm -rf vendor + +# Extracts vendored dependencies +vendor-extract: + #!/usr/bin/env sh + rm -rf vendor + tar pxf vendor.tar \ No newline at end of file