tools

various tools I have been using throughout the years
Log | Files | Refs | README | LICENSE

knitfile (6889B)


      1 local knit = require("knit")
      2 
      3 local root = knit.abs(".")
      4 local deploy_dir = cli.deploy_dir or env.HOME .. "/.local/bin"
      5 
      6 rust_bins := bin/dam bin/lastfm_rs bin/plants
      7 zig_bins := bin/pmn bin/pracomer bin/speediness
      8 go_bins := bin/wrd
      9 python_bins := bin/diggah bin/lazymaster bin/nts bin/shuffle bin/kundali
     10 ruby_bins := bin/hue bin/reflink-snap
     11 janet_bins := bin/backup
     12 mpd_queue_bins := bin/mpd_add_to_queue bin/mpd_edit_queue bin/mpd_update_queue bin/mpd_insert_next bin/mpd_trim_queue
     13 mpd_playlist_bins := bin/mpd_add_to_playlist bin/mpd_edit_playlist bin/mpd_update_library
     14 mpd_report_bins := bin/mpd_now_playing bin/mpd_report bin/mpd_report_monthly bin/mpd_report_daily
     15 mpd_bins := $mpd_queue_bins $mpd_playlist_bins $mpd_report_bins
     16 bins := $rust_bins $zig_bins $go_bins $mpd_bins $python_bins $ruby_bins $janet_bins
     17 
     18 cflags := -std=c17 -D_POSIX_C_SOURCE=200809L -Wall -Wextra -Wconversion -Wstrict-prototypes -O2 -march=native -mtune=native -fanalyzer -Wshadow -fstack-protector-strong -D_FORTIFY_SOURCE=2 -fPIE -Wformat -Werror=format-security -Wnull-dereference -Wdangling-pointer -Wtrampolines -Walloca -Wcast-align=strict -Wdate-time -Wfloat-equal -Wpointer-arith -Wredundant-decls -Wswitch-default -Wvla -Wwrite-strings
     19 ldflags := -lmpdclient -Wl,-z,relro -Wl,-z,now
     20 cc := /usr/bin/cc
     21 
     22 hue_rb := hue/lib/hue.rb hue/lib/hue/bridge.rb hue/lib/hue/bulb.rb hue/lib/hue/cli.rb hue/lib/hue/colors.rb hue/lib/hue/animations/candle.rb hue/lib/hue/animations/sunrise.rb hue/lib/hue/cli/command.rb hue/lib/hue/colors/color.rb hue/lib/hue/colors/color_temperature.rb hue/lib/hue/colors/hue_saturation.rb hue/lib/hue/colors/rgb.rb hue/lib/hue/colors/xy.rb hue/lib/hue/config/abstract.rb hue/lib/hue/config/application.rb hue/lib/hue/config/bridge.rb hue/lib/hue/extensions/bridge.rb hue/lib/hue/extensions/bulb.rb hue/lib/hue/extensions/hue.rb hue/lib/hue/utilities/indentation.rb hue/lib/hue/cli/commands/delete.rb hue/lib/hue/cli/commands/light.rb hue/lib/hue/cli/commands/lights.rb hue/lib/hue/cli/commands/register.rb hue/lib/hue/cli/processors/light_state_alias.rb
     23 
     24 return b{
     25 $ bin/dam: Cargo.toml Cargo.lock rust-toolchain.toml dam/Cargo.toml $(knit.glob("dam/src/*.rs"))
     26     cargo build --release -p dam
     27     cp target/release/dam $output
     28 
     29 $ bin/lastfm_rs: Cargo.toml Cargo.lock rust-toolchain.toml lastfm_rs/Cargo.toml $(knit.glob("lastfm_rs/src/*.rs"))
     30     cargo build --release -p lastfm_rs
     31     cp target/release/lastfm_rs $output
     32 
     33 $ bin/plants: Cargo.toml Cargo.lock rust-toolchain.toml plants/Cargo.toml $(knit.glob("plants/src/*.rs"))
     34     cargo build --release -p plants
     35     cp target/release/plants $output
     36 
     37 $ bin/pmn: pmn/build.zig pmn/build.zig.zon $(knit.glob("pmn/src/*.zig"))
     38     cd pmn && zig build -Doptimize=ReleaseSafe
     39     cp pmn/zig-out/bin/pmn $output
     40 
     41 $ bin/pracomer: pracomer/build.zig pracomer/build.zig.zon $(knit.glob("pracomer/src/*.zig"))
     42     cd pracomer && zig build -Doptimize=ReleaseSafe
     43     cp pracomer/zig-out/bin/pracomer $output
     44 
     45 $ bin/speediness: speediness/build.zig speediness/build.zig.zon $(knit.glob("speediness/src/*.zig"))
     46     cd speediness && zig build -Doptimize=ReleaseSafe
     47     cp speediness/zig-out/bin/speediness $output
     48 
     49 $ bin/wrd: wrd/go.mod $(knit.glob("wrd/*.go"))
     50     cd wrd && go build -o $(root)/$output .
     51 
     52 $ bin/mpd_add_to_playlist: mpd/mpd_add_to_playlist.c mpd/mpd_common.c mpd/mpd_common.h
     53     $cc $cflags -o $output mpd/mpd_add_to_playlist.c mpd/mpd_common.c $ldflags
     54 
     55 $ bin/mpd_add_to_queue: mpd/mpd_add_to_queue.c mpd/mpd_common.c mpd/mpd_common.h
     56     $cc $cflags -o $output mpd/mpd_add_to_queue.c mpd/mpd_common.c $ldflags
     57 
     58 $ bin/mpd_edit_queue: mpd/mpd_edit_queue.c mpd/mpd_common.c mpd/mpd_common.h
     59     $cc $cflags -o $output mpd/mpd_edit_queue.c mpd/mpd_common.c $ldflags
     60 
     61 $ bin/mpd_update_library: mpd/mpd_update_library.c mpd/mpd_common.c mpd/mpd_common.h
     62     $cc $cflags -o $output mpd/mpd_update_library.c mpd/mpd_common.c $ldflags
     63 
     64 $ bin/mpd_update_queue: mpd/mpd_update_queue.c mpd/mpd_common.c mpd/mpd_common.h
     65     $cc $cflags -o $output mpd/mpd_update_queue.c mpd/mpd_common.c $ldflags
     66 
     67 $ bin/mpd_insert_next: mpd/mpd_insert_next.c mpd/mpd_common.c mpd/mpd_common.h
     68     $cc $cflags -o $output mpd/mpd_insert_next.c mpd/mpd_common.c $ldflags
     69 
     70 $ bin/mpd_edit_playlist: mpd/mpd_edit_playlist.c mpd/mpd_common.c mpd/mpd_common.h
     71     $cc $cflags -o $output mpd/mpd_edit_playlist.c mpd/mpd_common.c $ldflags
     72 
     73 $ bin/mpd_now_playing: mpd/mpd_now_playing.c mpd/mpd_common.c mpd/mpd_common.h
     74     $cc $cflags -o $output mpd/mpd_now_playing.c mpd/mpd_common.c $ldflags
     75 
     76 $ bin/mpd_trim_queue: mpd/mpd_trim_queue.c mpd/mpd_common.c mpd/mpd_common.h
     77     $cc $cflags -o $output mpd/mpd_trim_queue.c mpd/mpd_common.c $ldflags
     78 
     79 $ bin/mpd_report: mpd/mpd_report.c mpd/mpd_common.c mpd/mpd_common.h
     80     $cc $cflags -o $output mpd/mpd_report.c mpd/mpd_common.c $ldflags
     81 
     82 $ bin/mpd_report_monthly: mpd/mpd_report_monthly
     83     cp mpd/mpd_report_monthly $output
     84     chmod +x $output
     85 
     86 $ .venv-stamp: requirements.txt
     87     python3 -m venv .venv
     88     .venv/bin/pip install --quiet --require-hashes -r requirements.txt
     89     sha256sum requirements.txt > $output
     90 
     91 $ bin/diggah: .venv-stamp diggah/diggah.py
     92     printf '#!/bin/sh\nexec "%s/.venv/bin/python" "%s/diggah/diggah.py" "$$@"\n' $root $root > $output
     93     chmod +x $output
     94 
     95 $ bin/kundali: .venv-stamp kundali/kundali.py
     96     printf '#!/bin/sh\nexec "%s/.venv/bin/python" "%s/kundali/kundali.py" "$$@"\n' $root $root > $output
     97     chmod +x $output
     98 
     99 $ bin/lazymaster: .venv-stamp lazymaster/lazymaster.py
    100     printf '#!/bin/sh\nexec "%s/.venv/bin/python" "%s/lazymaster/lazymaster.py" "$$@"\n' $root $root > $output
    101     chmod +x $output
    102 
    103 $ bin/nts: .venv-stamp nts/nts.py
    104     printf '#!/bin/sh\nexec "%s/.venv/bin/python" "%s/nts/nts.py" "$$@"\n' $root $root > $output
    105     chmod +x $output
    106 
    107 $ bin/shuffle: .venv-stamp shuffle/shuffle.py
    108     printf '#!/bin/sh\nexec "%s/.venv/bin/python" "%s/shuffle/shuffle.py" "$$@"\n' $root $root > $output
    109     chmod +x $output
    110 
    111 $ bin/hue: hue/bin/hue $hue_rb
    112     printf '#!/bin/sh\nexec ruby -I"%s/hue/lib" "%s/hue/bin/hue" "$$@"\n' $root $root > $output
    113     chmod +x $output
    114 
    115 $ bin/reflink-snap: reflink-snap/reflink-snap.rb
    116     printf '#!/bin/sh\nexec ruby "%s/reflink-snap/reflink-snap.rb" "$$@"\n' $root > $output
    117     chmod +x $output
    118 
    119 $ bin/backup: backup/backup
    120     cp backup/backup $output
    121     chmod +x $output
    122 
    123 $ all:VB: $bins
    124 
    125 $ deploy-dir:VB:
    126     install -d -m 700 $deploy_dir
    127 
    128 $ deploy/all:VB: deploy-dir $bins
    129     install -m 755 $bins $deploy_dir/
    130     echo "deployed all tools to $deploy_dir"
    131 
    132 $ deploy/mpd:VB: deploy-dir $mpd_bins
    133     install -m 755 $mpd_bins $deploy_dir/
    134     echo "deployed mpd tools to $deploy_dir"
    135 
    136 $ deploy/%:VB: deploy-dir bin/%
    137     install -m 755 bin/$match $deploy_dir/
    138     echo "deployed $match to $deploy_dir"
    139 
    140 $ bin/mpd_report_daily: mpd/mpd_report_daily
    141     cp mpd/mpd_report_daily $output
    142     chmod +x $output
    143 }