#!/usr/bin/env bash # Cleanup set -e trap 'exit 1' SIGINT # Source library LIBDIR="/usr/share/file-scripts/" for f in "$LIBDIR"/*.sh; do source "${f}" done DEFAULT_TEMPLATE_DIR="$HOME/Templates" # Helper functions function help() { cat <&2 exit 1 ;; *) break ;; esac done # If directory wasn't overridden if [[ -z "$DIR" ]]; then DIR="$DEFAULT_TEMPLATE_DIR" fi # If no target specified if [[ -z "$1" ]]; then printf '%s\n' 'Please specify target name' exit 1 fi # Check if default template directory exists if ! [[ -d "$DIR" ]]; then printf '%s\n' "Template directory doesn't exist, exiting." exit 2 fi files="$(find_files "$DIR")" selected_file="$(run_fzf "$files")" # Check if target exists if [[ -f "$1" && -z "$FORCE_OVERWRITE" ]]; then printf '%s\n' 'File already exists, exiting' exit 1 elif [[ -f "$1" && -n "$FORCE_OVERWRITE" ]]; then cp --verbose --force -- "$selected_file" "$1" else cp --verbose -- "$selected_file" "$1" fi