test cosmic applet
at main 3.4 kB view raw
1name := 'eyez' 2export APPID := 'com.example.eyez' 3 4rootdir := '' 5prefix := '/usr' 6flatpak-prefix := '/app' 7 8base-dir := absolute_path(clean(rootdir / prefix)) 9flatpak-base-dir := absolute_path(clean(rootdir / flatpak-prefix)) 10 11export INSTALL_DIR := base-dir / 'share' 12 13bin-src := 'target' / 'release' / name 14bin-dst := base-dir / 'bin' / name 15flatpak-bin-dst := flatpak-base-dir / 'bin' / name 16 17desktop := APPID + '.desktop' 18desktop-src := 'res' / desktop 19desktop-dst := clean(rootdir / prefix) / 'share' / 'applications' / desktop 20 21metainfo := APPID + '.metainfo.xml' 22metainfo-src := 'res' / metainfo 23metainfo-dst := clean(rootdir / prefix) / 'share' / 'metainfo' / metainfo 24 25icons-src := 'res' / 'icons' / 'hicolor' 26icons-dst := clean(rootdir / prefix) / 'share' / 'icons' / 'hicolor' 27 28# Default recipe which runs `just build-release` 29default: build-release 30 31# Runs `cargo clean` 32clean: 33 cargo clean 34 35# Removes vendored dependencies 36clean-vendor: 37 rm -rf .cargo vendor vendor.tar 38 39# `cargo clean` and removes vendored dependencies 40clean-dist: clean clean-vendor 41 42# Compiles with debug profile 43build-debug *args: 44 cargo build {{args}} 45 46# Compiles with release profile 47build-release *args: (build-debug '--release' args) 48 49# Compiles release profile with vendored dependencies 50build-vendored *args: vendor-extract (build-release '--frozen --offline' args) 51 52# Runs a clippy check 53check *args: 54 cargo clippy --all-features {{args}} -- -W clippy::pedantic 55 56# Runs a clippy check with JSON message format 57check-json: (check '--message-format=json') 58 59dev *args: 60 cargo fmt 61 just run {{args}} 62 63# Run with debug logs 64run *args: 65 env RUST_LOG=cosmic_tasks=info RUST_BACKTRACE=full cargo run --release {{args}} 66 67# Installs files 68install: 69 install -Dm0755 {{bin-src}} {{bin-dst}} 70 install -Dm0644 {{desktop-src}} {{desktop-dst}} 71 install -Dm0644 {{metainfo-src}} {{metainfo-dst}} 72 for size in `ls {{icons-src}}`; do \ 73 install -Dm0644 "{{icons-src}}/$size/apps/{{APPID}}.svg" "{{icons-dst}}/$size/apps/{{APPID}}.svg"; \ 74 done 75 76# Installs files 77flatpak: 78 install -Dm0755 {{bin-src}} {{flatpak-bin-dst}} 79 install -Dm0644 {{desktop-src}} {{desktop-dst}} 80 install -Dm0644 {{metainfo-src}} {{metainfo-dst}} 81 for size in `ls {{icons-src}}`; do \ 82 install -Dm0644 "{{icons-src}}/$size/apps/{{APPID}}.svg" "{{icons-dst}}/$size/apps/{{APPID}}.svg"; \ 83 done 84 85# Uninstalls installed files 86uninstall: 87 rm {{bin-dst}} 88 rm {{desktop-dst}} 89 rm {{metainfo-dst}} 90 for size in `ls {{icons-src}}`; do \ 91 rm "{{icons-dst}}/$size/apps/{{APPID}}.svg"; \ 92 done 93 94# Vendor dependencies locally 95vendor: 96 #!/usr/bin/env bash 97 mkdir -p .cargo 98 cargo vendor --sync Cargo.toml | head -n -1 > .cargo/config.toml 99 echo 'directory = "vendor"' >> .cargo/config.toml 100 echo >> .cargo/config.toml 101 echo '[env]' >> .cargo/config.toml 102 if [ -n "${SOURCE_DATE_EPOCH}" ] 103 then 104 source_date="$(date -d "@${SOURCE_DATE_EPOCH}" "+%Y-%m-%d")" 105 echo "VERGEN_GIT_COMMIT_DATE = \"${source_date}\"" >> .cargo/config.toml 106 fi 107 if [ -n "${SOURCE_GIT_HASH}" ] 108 then 109 echo "VERGEN_GIT_SHA = \"${SOURCE_GIT_HASH}\"" >> .cargo/config.toml 110 fi 111 tar pcf vendor.tar .cargo vendor 112 rm -rf .cargo vendor 113 114# Extracts vendored dependencies 115vendor-extract: 116 rm -rf vendor 117 tar pxf vendor.tar