56 lines
826 B
Bash
Executable file
56 lines
826 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
declare -A mapper=(
|
|
["nix"]="nix"
|
|
["sh"]="sh"
|
|
)
|
|
|
|
declare -A edit_file=(
|
|
["nix"]="shell.nix"
|
|
)
|
|
|
|
if [ -z "$1" ]
|
|
then
|
|
echo "No argument given. Use --list (-l) to show all options."
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$1" = "-l" ] || [ "$1" = "--list" ]
|
|
then
|
|
echo "${!mapper[@]}"
|
|
exit
|
|
fi
|
|
|
|
dest="."
|
|
if [ -n "$2" ]
|
|
then
|
|
dest="$2"
|
|
fi
|
|
|
|
source="${mapper["$1"]}"
|
|
if [ -z "$source" ]
|
|
then
|
|
echo "Template not found. Use --list (-l) to show all options."
|
|
exit 1
|
|
fi
|
|
|
|
source="$XDG_CONFIG_HOME/templates/$source"
|
|
if [ -f "$source" ]
|
|
then
|
|
cp -i "$source" "$dest"
|
|
echo "Template copied."
|
|
source_edit=$dest
|
|
elif [ -d "$source" ]
|
|
then
|
|
cp -irT "$source" "$dest"
|
|
echo "Template copied."
|
|
source_edit=$dest/${edit_file["$1"]}
|
|
else
|
|
echo "Error copying template."
|
|
exit 1
|
|
fi
|
|
|
|
if [ -n "$source_edit" ]
|
|
then
|
|
$EDITOR "$source_edit"
|
|
fi
|