#!/bin/bash
# Source this and then run `cds`

# cd search: cd to a directory, given part of its name
# (also can take arguments for an `fd` commnd)
# (also can cd to a file if `-t f` is passed)

cds() {
   if ! [ -z "$1" ];then
      DIR="$(fd --max-results=1 -t d $@)"
      if [ -f "$DIR" ];then
         cd "$(dirname "$DIR")" && pwd
      else
         cd "$DIR" && pwd
      fi
   else
      echo "$0: no arguments provided"
      return 1
   fi
}