refactor(templates): Better template file organization

- .prettierignore & .dockerignore: generate from the repository's
  .gitignore file
- .dockerignore: Ignore .git, *.md, Dockerfile by default
- Remove unnecessary exports for each template
- .gitignore: Better comments and organization
This commit is contained in:
Pratik Tripathy
2025-10-28 21:36:59 +05:30
parent 878a791f42
commit 2e8f827135
5 changed files with 104 additions and 180 deletions

View File

@@ -1,30 +1,18 @@
# ---- KDE Neon ---- # ----- OS Artifacts ----
# KDE directory preferences # Linux
.Trash-*
.directory .directory
# temporary files which can be created if a process still has a handle open of a deleted file # temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden* .fuse_hidden*
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed # .nfs files are created when an open file is removed but is still being accessed
.nfs* .nfs*
# Binaries for programs and plugins # macOS
*.exe
*.exe~
*.dll
*.so
*.dylib
# ---- macOS ----
# General
.DS_Store .DS_Store
.AppleDouble .AppleDouble
.LSOverride .LSOverride
# Icon must end with two \r
Icon Icon
# Thumbnails # Thumbnails
@@ -46,6 +34,19 @@ Network Trash Folder
Temporary Items Temporary Items
.apdisk .apdisk
# Other Files to ignore
**app_stat_v2.db
.ssh/*.pub
**/Package Control.cache
**Cache
*.db
*.qmlc
*.qml
*.jsc
**/contents/images
**/contents/fonts
*kpluginindex.json
# ---- IDE ---- # ---- IDE ----
# Vim Artifacts # Vim Artifacts
**.swp **.swp
@@ -68,14 +69,25 @@ resharper-host/
tasks/ tasks/
# ---- Programming Languages ---- # ---- Programming Languages ----
# Ignore all downloaded node modules # Javascript
**/node_modules/* **/node_modules/*
dist dist
dist-ssr dist-ssr
*.local *.local
# Ignore all minified js files
*.min.js *.min.js
# Rust
target/
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
**/built/
# Log files # Log files
logs logs
*.log *.log
@@ -84,18 +96,3 @@ yarn-debug.log*
yarn-error.log* yarn-error.log*
pnpm-debug.log* pnpm-debug.log*
lerna-debug.log* lerna-debug.log*
# Other Files to ignore
**app_stat_v2.db
.ssh/*.pub
**/Package Control.cache
**Cache
*.db
*.qmlc
*.qml
*.jsc
**/contents/images
**/contents/fonts
*kpluginindex.json
**/built/

View File

@@ -1,109 +0,0 @@
build
coverage
# ---- KDE Neon ----
# KDE directory preferences
.directory
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib
# ---- macOS ----
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# ---- IDE ----
# Vim Artifacts
**.swp
lazy-lock.json
.luarc.json
# VS Code Artifacts
/.vscode/
**state.vscdb
**state.vscdb.backup
.vscode/extensions/** # Ignore all Files under .vscode/extensions/
!.vscode/extensions/**/*.json # Only json files inside the .vscode/extensions/ folder
# Intellij IDE Artifacts
.idea/
*.imi
*.jar
*.tar
resharper-host/
tasks/
# ---- Programming Languages ----
# Ignore all downloaded node modules
**/node_modules/*
dist
dist-ssr
*.local
# Ignore all minified js files
*.min.js
# Log files
..logs/
*.log
# Other Files to ignore
**app_stat_v2.db
.ssh/*.pub
**/Package Control.cache
**Cache
*.db
*.qmlc
*.qml
*.jsc
**/contents/images
**/contents/fonts
*kpluginindex.json
*backup
*undo
*sessions
*.bak
nvim_switch/
*kitty/*.py
.prettierignore
package-lock.json
.prettierrc
**/built/

View File

@@ -1,14 +1,7 @@
#!/bin/sh #!/bin/sh
#
# An example hook script to verify what is about to be committed.
# Called by "git commit" with no arguments. The hook should
# exit with non-zero status after issuing an appropriate message if
# it wants to stop the commit.
#
# To enable this hook, rename this file to "pre-commit".
# Check if Gitleaks is installed # Check if Gitleaks is installed
if ! command -v gitleaks > /dev/null 2>&1; then if ! command -v gitleaks >/dev/null 2>&1; then
echo "Gitleaks is not installed. Skipping leak check." echo "Gitleaks is not installed. Skipping leak check."
echo "Please install Gitleaks for enhanced security." echo "Please install Gitleaks for enhanced security."
exit 0 exit 0

View File

@@ -79,11 +79,7 @@ export FZF_DEFAULT_COMMAND='rg --files --hidden'
export FZF_DEFAULT_OPTS='--layout=reverse --cycle' export FZF_DEFAULT_OPTS='--layout=reverse --cycle'
export DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker" export DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker"
[ ! -f "${XDG_CONFIG_HOME}/templates/.gitignore" ] || export GITIGNORE_TEMPLATE="${XDG_CONFIG_HOME}/templates/.gitignore" [ ! -d "${XDG_CONFIG_HOME}/templates" ] || export TEMPLATE_DIR="${XDG_CONFIG_HOME}/templates"
[ ! -f "${XDG_CONFIG_HOME}/templates/.prettierrc" ] || export PRETTIER_TEMPLATE="${XDG_CONFIG_HOME}/templates/.prettierrc"
[ ! -f "${XDG_CONFIG_HOME}/templates/.prettierignore" ] || export PRETTIER_IGNORE_TEMPLATE="${XDG_CONFIG_HOME}/templates/.prettierignore"
[ ! -f "${XDG_CONFIG_HOME}/templates/pre-commit" ] || export GIT_PRECOMMIT_TEMPLATE="${XDG_CONFIG_HOME}/templates/pre-commit"
[ ! -f "${XDG_CONFIG_HOME}/templates/.eslintrc.json" ] || export ESLINT_TEMPLATE="${XDG_CONFIG_HOME}/templates/.eslintrc.json"
# Python # Python
export PYTHON_HISTORY="${XDG_STATE_HOME}/shell/python_history" # will be picked up by Python 3.13+ export PYTHON_HISTORY="${XDG_STATE_HOME}/shell/python_history" # will be picked up by Python 3.13+

View File

@@ -10,10 +10,78 @@ alias lsa="ls -lAFhZ"
alias printpath="echo $PATH | tr : '\n'" alias printpath="echo $PATH | tr : '\n'"
# Templates # Templates
[ ! -f "$GITIGNORE_TEMPLATE" ] || alias cp_gi='cp ${GITIGNORE_TEMPLATE} .' [ ! -f "${TEMPLATE_DIR}/.gitignore" ] || alias cp_git_ignore='cp ${TEMPLATE_DIR}/.gitignore . && echo ".gitignore added"'
[ ! -f "$PRETTIER_TEMPLATE" ] || alias cp_prc='cp ${PRETTIER_TEMPLATE} .' [ ! -f "${TEMPLATE_DIR}/.prettierrc" ] || alias cp_prettier_rc='cp ${TEMPLATE_DIR}/.prettierrc . && echo ".prettierrc added"'
[ ! -f "$PRETTIER_IGNORE_TEMPLATE" ] || alias cp_prigr='cp ${PRETTIER_IGNORE_TEMPLATE} .' [ ! -f "${TEMPLATE_DIR}/.eslintrc.json" ] || alias cp_eslint='cp ${TEMPLATE_DIR}/.eslintrc.json . && echo ".eslintrc.json added"'
[ ! -f "$ESLINT_TEMPLATE" ] || alias cp_eslint='cp ${ESLINT_TEMPLATE} .' cp_docker_ignore() {
local git_ignore_file
if [ -f .gitignore ]; then
git_ignore_file=.gitignore
elif [ -f "${TEMPLATE_DIR}/.gitignore" ]; then
git_ignore_file="${TEMPLATE_DIR}/.gitignore"
else
return 1
fi
cp "$git_ignore_file" .dockerignore
cat <<EOF >>.dockerignore
# ---- Docker specific ----
git/
*.md
Dockerfile
EOF
echo ".dockerignore added"
}
cp_prettier_ignore() {
local git_ignore_file
if [ -f .gitignore ]; then
git_ignore_file=.gitignore
elif [ -f "${TEMPLATE_DIR}/.gitignore" ]; then
git_ignore_file="${TEMPLATE_DIR}/.gitignore"
else
return 1
fi
cp "$git_ignore_file" .prettierignore
cat <<EOF >>.prettierignore
# ---- Prettier specific ----
*backup
*undo
*sessions
.prettierignore
package-lock.json
.prettierrc
EOF
echo ".prettierignore added"
}
cp_git_precommit() {
local template_file="${TEMPLATE_DIR}/pre-commit"
if [ ! -f "$template_file" ]; then
return 1
fi
if [ ! -d ".git" ]; then
echo "Not a git repository"
return 1
fi
local hooks_dir
hooks_dir="$(pwd)/.git/hooks"
if [ -f "$hooks_dir/$(basename "$template_file")" ]; then
echo "pre-commit hook already exist"
return 1
fi
cp "$template_file" "$hooks_dir" && printf "Pre-commit hook template copied to %s\n" "$hooks_dir"
}
# Coding # Coding
command -v tldr >/dev/null && alias tldr="tldr --platform=linux" command -v tldr >/dev/null && alias tldr="tldr --platform=linux"
@@ -33,27 +101,6 @@ git_push_all_changes() {
git add . && git commit -am "${1}" && git push git add . && git commit -am "${1}" && git push
} }
cp_git_precommit() {
if [ ! -f "$GIT_PRECOMMIT_TEMPLATE" ]; then
echo "Git Pre-commit template does not exist"
return 1
fi
hooks_dir="$(pwd)/.git/hooks"
if [ ! -d "$hooks_dir" ]; then
echo "Git repository not found under $(pwd)"
return 2
fi
if [ -f "$hooks_dir/$(basename "$GIT_PRECOMMIT_TEMPLATE")" ]; then
echo "pre-commit hook already exist. Skipping..."
return 0
fi
cp "$GIT_PRECOMMIT_TEMPLATE" "$hooks_dir" && printf "Pre-commit hook template copied to %s\n" "$hooks_dir"
}
# Directories and Directory listings # Directories and Directory listings
dir_size() { dir_size() {
if [ "$1" = "" ]; then if [ "$1" = "" ]; then