1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00

Add command-line option-parsing to gitlog-to-emacslog.

* build-aux/gitlog-to-emacslog: Add command-line options.
By default, refuse to remove an existing output file.
* Makefile.in (CHANGELOG): Update default.
(ChangeLog): Do not test for existing file.
(change-history-nocommit): Ensure temp file does not exist.
This commit is contained in:
Glenn Morris 2015-05-08 20:45:22 -04:00
parent 36c6d20bea
commit 907606c84f
2 changed files with 19 additions and 9 deletions

View File

@ -1091,17 +1091,15 @@ bootstrap: bootstrap-clean
.PHONY: ChangeLog change-history change-history-commit change-history-nocommit
.PHONY: master-branch-is-current unchanged-history-files
CHANGELOG =
CHANGELOG = ChangeLog
emacslog = $(srcdir)/build-aux/gitlog-to-emacslog
# Convert git commit log to ChangeLog file. make-dist uses this.
# I guess this is PHONY because it generates in distprefix (which is
# non-nil when called from make-dist)?
# FIXME: test -f does not respect distprefix.
ChangeLog:
@[ -n "${CHANGELOG}" ] || test ! -f ChangeLog
$(AM_V_GEN)distprefix=$(distprefix) srcprefix=$(srcdir)/ \
$(emacslog) . $(CHANGELOG)
$(emacslog) -o $(CHANGELOG)
# The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ...,
# ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for
@ -1119,6 +1117,7 @@ unchanged-history-files:
# Copy newer commit messages to the start of the ChangeLog history file,
# and consider them to be older.
change-history-nocommit: master-branch-is-current unchanged-history-files
-rm -f ChangeLog.tmp
$(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp
(sed '/^;; [L]ocal Variables:/,$$d' <ChangeLog.tmp && cat $(CHANGELOG_N)) \
>$(CHANGELOG_N).tmp

View File

@ -24,15 +24,26 @@ export LC_ALL
# The newest revision that should not appear in the generated ChangeLog.
gen_origin=2c1b8604946efbcd8ec5dd6c6dda7541ce4fc3c0
test -n "$1" && test "$1" != "." && gen_origin=$1
force=
output=ChangeLog
output=$2
test -n "$output" || output=ChangeLog
while [ $# -gt 0 ]; do
case "$1" in
-g|--gen-origin) gen_origin="$2" ; shift ;;
-f|--force) force=1 ;;
-o|--output) output="$2" ; shift ;;
*) echo "Unrecognized argument: $1" >&2; exit 1 ;;
esac
shift
done
if [ -f "${distprefix}$output" ]; then
[ ! "$force" ] && echo "${distprefix}$output exists" && exit 1
rm -f "${distprefix}$output" || exit 1
fi
# If this is not a Git repository, just generate an empty ChangeLog.
test -d ${srcprefix}.git || {
# Remove any old ChangeLog, in case it is a vc-dwim symlink.
rm -f "${distprefix}$output" || exit
>"${distprefix}$output"
exit
}