Skip to content

Instantly share code, notes, and snippets.

@cleverca22
Created October 30, 2016 19:02
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cleverca22/2c088cd9ed86fa9370d29e422111d89d to your computer and use it in GitHub Desktop.
Save cleverca22/2c088cd9ed86fa9370d29e422111d89d to your computer and use it in GitHub Desktop.
{ writeScriptBin, runCommand, xterm }:
let
nixposition = writeScriptBin "nix-position" ''
nix-position () {
usage () {
echo "Usage: nix-position <attribute-path-under-pkgs>"
echo "Shows the Nix source file for a given attribute path."
}
if [ $# -ne 1 ]; then usage; return -1; fi
local EXPR="(import <nixpkgs> {}).pkgs.${1}.meta.position"
nix-instantiate --eval -E "''${EXPR}" | sed 's:"$::g' | sed 's:^"::g'
return 0
}
'';
in runCommand "util-1" {} ''
mkdir -pv $out/bin
cat << EOF > $out/bin/loginto
#!$SHELL
exec ${xterm}/bin/xterm -e ssh \$1 -t screen -xRRU
EOF
chmod +x $out/bin/loginto
cat << EOF > $out/bin/showsize
#!$SHELL
nix-store --query --tree "\$1" | sed 's,[-+| ]*/,/,' | awk '{print \$1}' | sort | uniq | xargs nix-store --query --size | paste -sd+ | ( echo -n '( ';sed 's,+, + ,g';echo ' ) / 1024 / 1024' ) | xargs expr
EOF
chmod +x $out/bin/showsize
cat << EOF > $out/bin/nix-lookup
#!$SHELL
local USAGE
USAGE="$USAGE Usage: nix-lookup <expression-path-under-pkgs>"
USAGE="$USAGE Shows the directory for the given attribute path."
if [ $# -ne 1 ]; then echo "$USAGE"; return -1; fi
nix-instantiate --eval -E "\"\''${(import <nixpkgs> {}).pkgs.$1}\"" | sed 's:"::g'
EOF
chmod +x $out/bin/nix-lookup
''
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment