blob: 4a8bfb72afaf28555e5515aab23b5eaa65d539fb [file] [log] [blame]
#!/usr/bin/env bash
if [ "$1" = "" ]
then
read -ep "What command are you looking for?: " CMD
else
CMD=$1
fi
LOCATION=$(command -V "$CMD" 2>&1 | sed -rn "s/.* (.*)$/\1/p")
if [ "$LOCATION" = "found" ] # Not found
then
echo "The command $CMD wasn't found"
exit 1
fi
if [ "$LOCATION" = "builtin" ] # Shell builtin
then
echo "The command $CMD is a shell builtin"
exit 0
fi
RESOLVED_LOCATION=$(readlink -f "$LOCATION")
if [[ ! "$RESOLVED_LOCATION" =~ ^\/nix\/store\/.*-.*-.*$ ]];
then
echo "The command $CMD is at $RESOLVED_LOCATION"
exit 0
fi
PACKAGE=$(echo "$RESOLVED_LOCATION" | sed -rn "s/\/nix\/store\/[^-]*-(.*)-[^-]*/\1/p")
SEARCHED=$(nix search "nixpkgs#$PACKAGE" 2>&1)
if [ "$SEARCHED" = "error: no results for the given search term(s)!" ]
then
echo "The command $CMD is at $RESOLVED_LOCATION"
exit 0
fi
echo "The command $CMD is from:"
echo "$SEARCHED"
echo "Which is available at $RESOLVED_LOCATION"