#!/usr/bin/env bash tags_file="$HOME/.vim/tags" ctags_cmd="ctags --fields=+l --c-kinds=+p --c++-kinds=+p -R -f $tags_file" function generate_tags() { printf '%s\n' 'Recursively generating tags for the following paths:' for path in "$@"; do printf '%s\n' " $path" done if $ctags_cmd "$@" >/dev/null 2>&1; then printf '%s\n' 'Done!' else printf '%s\n' 'Failed!' exit 1 fi } if command -v ctags >/dev/null; then [[ -n "$1" ]] && generate_tags "$@" || generate_tags "$PWD" else printf '%s\n' 'Error: cannot find the ctags binary in $PATH' exit 1 fi