{ pkgs, srcs, ... }: let inherit (srcs) cage; cageWithEnvOption = pkgs.cage.overrideAttrs (final: prev: { inherit (cage) src version; }); in pkgs.writeShellApplication { name = "cage"; runtimeInputs = [cageWithEnvOption]; text = '' args=() output= while [[ $# -gt 0 ]]; do case "$1" in -o) if [[ $# -ge 2 ]]; then output="$2" shift 2 else args+=("$1") shift fi ;; *) args+=("$1") shift ;; esac done if [[ -n "$output" ]]; then CAGE_OUTPUT_NAME="$output" cage "''${args[@]}" else cage "''${args[@]}" fi ''; }