aboutsummaryrefslogtreecommitdiff
path: root/.gitmessage
diff options
context:
space:
mode:
authorDennis Fink2026-02-22 08:41:04 +0100
committerDennis Fink2026-02-22 08:41:24 +0100
commitd6b6cb1bfd71e95aeda2e784c214ddffcc777fd1 (patch)
tree4ca07090f28242764425f6416c10b0203334da29 /.gitmessage
downloadtranscode.sh-d6b6cb1bfd71e95aeda2e784c214ddffcc777fd1.tar.gz
transcode.sh-d6b6cb1bfd71e95aeda2e784c214ddffcc777fd1.zip
feat: initial release of transcode.sh v1.0.0
Batch transcode helper for media files using ffmpeg. Encoding parameters are supplied by user-defined preset files (shell snippets that set an `ffargs` array) stored under ${XDG_CONFIG_HOME:-$HOME/.config}/transcode.sh/presets/. Key capabilities: - Probes input codec and pixel format via ffprobe; derives an output pixel format that preserves chroma subsampling and bit depth. - Per-user and per-invocation codec skip lists to leave already-encoded files untouched. - Atomic in-place replacement: encodes to a temp file in the same directory, then renames on success. - --only-if-smaller: discard the result if it is larger than the original. - --saving: append filename, original/new sizes and percentage saved to a log file after each successful encode. - --dry-run, --verbose, --quiet, --nice and --continue flags. - Respects the NO_COLOR standard. - Script hardening: strict PATH, safe IFS, errtrace, nounset, pipefail. Also included: - Man page (transcode.sh.1) - Bash completion script (transcode.sh.bash-completion) - README.md - .gitmessage commit message template License: BSD-3-Clause
Diffstat (limited to '.gitmessage')
-rw-r--r--.gitmessage58
1 files changed, 58 insertions, 0 deletions
diff --git a/.gitmessage b/.gitmessage
new file mode 100644
index 0000000..571fb50
--- /dev/null
+++ b/.gitmessage
@@ -0,0 +1,58 @@
+# <type>[optional scope]: <short description> (max 72 chars total) ------>|
+#
+# Types (choose ONE):
+# feat New feature (MINOR bump in SemVer)
+# fix Bug fix (PATCH bump)
+# docs Documentation only (README, man page, comments)
+# style Formatting, whitespace — no logic change
+# refactor Code restructure — no feature/fix
+# perf Performance improvement
+# test Tests only
+# build Build system / dependency changes
+# ci CI/CD configuration
+# chore Maintenance (release commits, tooling)
+# revert Revert a previous commit
+#
+# Scopes (optional, in parentheses after type):
+# core Main script logic / encode_one()
+# preset Preset loading / preset files
+# color Terminal color / NO_COLOR handling
+# cli Option parsing / help / version output
+# skip Codec skip-list handling
+# saving File-size savings logging
+# docs Documentation (man page, README)
+# completion Bash completion script
+#
+# Breaking changes: append ! before the colon → feat(cli)!: ...
+# --------------------------------------------------------------------------
+
+# [blank line — required before body]
+
+# Body (optional): explain WHY, not WHAT. Wrap at 72 chars. ---->|
+#
+# Motivation for the change, background, trade-offs considered, etc.
+# Use multiple paragraphs separated by blank lines if needed.
+
+# [blank line before footers]
+
+# Footers (optional):
+# BREAKING CHANGE: <description of what breaks and how to migrate>
+# Fixes: #<issue>
+# Refs: #<issue>, <commit-sha>
+# Reviewed-by: Name <email>
+# Co-authored-by: Name <email>
+#
+# --------------------------------------------------------------------------
+# Examples:
+#
+# feat(preset): add support for passing raw ffmpeg flags via env var
+#
+# fix(core): prevent tmp file leak when ffprobe exits non-zero
+#
+# docs: add man page and bash completion script
+#
+# feat(cli)!: rename --encodefile to --file-list for clarity
+#
+# BREAKING CHANGE: --encodefile/-f is now --file-list/-F. Update any
+# scripts or aliases that use the old flag.
+# --------------------------------------------------------------------------