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,11 +1,4 @@
#!/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

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