libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] Remove clcommit.m4sh.


From: Gary V. Vaughan
Subject: [PATCH] Remove clcommit.m4sh.
Date: Wed, 1 Sep 2010 09:53:28 +0700

Does anyone else use the commit script?

* clcommit.m4sh: Removed. This script was written to help keep
ChangeLog and commit messages in sync when committing to CVS,
and is an anachronism now that Libtool uses git.

Okay to push?

---
 ChangeLog     |    7 +
 clcommit.m4sh |  375 ---------------------------------------------------------
 2 files changed, 7 insertions(+), 375 deletions(-)
 delete mode 100644 clcommit.m4sh

diff --git a/ChangeLog b/ChangeLog
index a4c91cb..aba79b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-09-01  Gary V. Vaughan  <address@hidden>
+
+       Remove clcommit.m4sh.
+       * clcommit.m4sh: Removed. This script was written to help keep
+       ChangeLog and commit messages in sync when committing to CVS,
+       and is an anachronism now that Libtool uses git.
+
 2010-08-31  Gary V. Vaughan  <address@hidden>
 
        Remove double `Generated from foo.m4sh' lines.
diff --git a/clcommit.m4sh b/clcommit.m4sh
deleted file mode 100644
index c189cf3..0000000
--- a/clcommit.m4sh
+++ /dev/null
@@ -1,375 +0,0 @@
-AS_INIT[]m4_divert_push([HEADER-COPYRIGHT])
-# clcommit (GNU @PACKAGE@) version 2.1
-# Written by Gary V. Vaughan <address@hidden>
-# and Alexandre Oliva <address@hidden>
-
-# Copyright (C) 1999, 2000, 2004, 2006, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
-# This is free software; see the source for copying conditions.  There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# Clcommit is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# Clcommit is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with clcommit; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [--] [filepattern ...]
-
-# -a AUTHOR --author=AUTHOR    override changeset author name with AUTHOR
-# -C FILE   --changelog=FILE   extract commit message from specified FILE
-#           --debug            enable verbose shell tracing
-# -n        --dry-run          don't commit anything
-#           --fast             same as --force --first
-# -F FILE   --file=FILE        read commit message from FILE
-# -1        --first            extract first entry from ChangeLog, no git diff
-# -f        --force            don't check (unless *followed* by -n), and just
-#                              display commit message instead of running $PAGER
-#           --from=ADDRESS     override default from ADDRESS in commit email
-# -m STRING --message=STRING   set commit message to STRING
-#           --msg=STRING          same as -m
-# -p        --push             push the changes back to origin
-# -r [FILE] --rcfile[=FILE]    read default option from FILE [./.clcommitrc]
-# -s ADDR   --sendmail=ADDR    send commit email of the differences to ADDRESS
-#           --signature[=FILE] add FILE to the end of the email [~/.signature]
-#           --signoff          add a Signed-off-by attribution at the end
-# -S TEXT   --summary=TEXT     specify a TEXT subject line for the commit email
-#           --tags             in conjunction with -p, also push tags
-# -v        --verbose          run in verbose mode
-#           --version          print version information
-# -h,-?     --help             print short or long help message
-
-# This script eases checking in changes to git-maintained projects
-# with ChangeLog files.  It will check that there have been no
-# conflicting commits in the git repository and print which files it
-# is going to commit to stderr.  A list of files to compare and to
-# check in can be given in the command line.  If it is not given, all
-# files in the current working directory are considered for check in.
-
-# The commit message will be extracted from the differences between a
-# file named ChangeLog* in the commit list, or named after -C, and the
-# one in the repository (unless a message was specified with `-m' or
-# `-F').  An empty message is not accepted (but a blank line is).  If
-# the message is acceptable, it will be presented for verification
-# (and possible edition) using the $PAGER environment variable (or
-# `more', if it is not set, or `cat', if the `-f' switch is given).
-# If $PAGER exits successfully, the modified files (at that moment)
-# are checked in, unless `-n' was specified, in which case nothing is
-# checked in.
-
-# Report bugs to <address@hidden>
-
-: ${GIT="git"}
-: ${MAILNOTIFY="mailnotify"}
-: ${MKSTAMP="mkstamp"}
-
-test -f "libltdl/config/$MAILNOTIFY" && MAILNOTIFY="libltdl/config/$MAILNOTIFY"
-test -f "libltdl/config/$MKSTAMP" && MKSTAMP="libltdl/config/$MKSTAMP"
-
-PROGRAM=clcommit
-
-m4_divert_pop
-m4_include([getopt.m4sh])
-
-M4SH_VERBATIM([[
-# Locations for important files:
-log_dir="`func_mktempdir`"
-log_file="$log_dir/log"
-push_conflicts="$log_dir/git_push.log"
-
-trap '$RM -r "$log_dir"; exit $EXIT_FAILURE' 1 2 15
-
-# try to find out whether read supports -r
-if echo bt | tr b '\\' | { read -r line; test "X$line" = 'X\t'; } 2>/dev/null
-then
-  read_r='read -r'
-else
-  read_r=read
-fi
-]])
-
-dnl SHORT      LONG                           DEFAULT                INIT
-dnl ----------------------------------------------------------------------
-M4SH_GETOPTS(
-  [1],         [--first],                      [],                     [],
-  [a^!],       [--author],                     [],                     [
-       git_flags="${git_flags+$git_flags }--author=$opt_author"],
-  address@hidden,              [--changelog|--Change[Ll]og],   [],             
        [],
-  [F!],                [--file],                       [],                     
[
-       cat "[$]1" > "$log_file" || break],
-  [f],         [--force],                      [],                     [
-       PAGER=cat],
-  [m!],                [--message|--msg],              [],                     
[
-       echo "[$]1" > "$log_file"],
-  [n],         [--dry-run|--dryrun],           [],                     [
-       mailnotify_flags="${mailnotify_flags+$mailnotify_flags }--dry-run"],
-  [p],         [--push],                       [],                     [],
-  address@hidden,      [--rcfile],                     [./.clcommitrc],        
[
-       # The funny quoting allows keeping one option per line in $opt_rcfile:
-       eval set dummy `echo \`cat $opt_rcfile\` '${1+"[$]@"}'`
-       shift],
-  [S!],                [--summary],                    [],                     
[],
-  [s^!],       [--sendmail],                   [],                     [],
-  [v],         [--verbose],                    [],                     [
-       mailnotify_flags="${mailnotify_flags+$mailnotify_flags }--verbose"],
-  [],          [--fast],                       [],                     [
-       set dummy --force --first ${1+"[$]@"}; shift],
-  [^!],                [--from],                       [],                     
[
-       mailnotify_flags="${mailnotify_flags+$mailnotify_flags 
}--from=$opt_from"],
-  address@hidden,              [--signature],                  [],             
        [
-       test -n "$opt_signature" || opt_signature="$HOME/.signature"],
-  [],          [--signoff],                    [],                     [
-       git_flags="${git_flags+$git_flags }$opt"],
-  [],          [--tags],                       [],                     [],
- [
-  # pass debug flag along to mailnotify
-  test "$opt_debug" != ":" &&
-      mailnotify_flags="${mailnotify_flags+$mailnotify_flags }--debug"
-
-  # validate $opt_first, $opt_file and $opt_message
-  if $opt_first; then
-      test -n "$opt_file$opt_message" &&
-          func_error "you can have at most one of -m, -F and -1"
-  else
-      test -n "$opt_file" && test -n "$opt_message" &&
-          func_error "you can have at most one of -m, -F and -1"
-  fi
-
-  # validate $opt_from and $opt_signature
-  test -n "$opt_sendmail" || {
-    # can't have a from address without a destination address
-    test -n "$opt_from" &&
-      func_error "can't use --from without --sendmail." && exit_cmd=exit
-
-    # can't use a signature file without a destination address
-    test -n "$opt_signature" &&
-      func_error "can't use --signature without --sendmail." && exit_cmd=exit
-  }
-
-  # validate $opt_tags
-  $opt_push || {
-      $opt_tags &&
-          func_error "can't use --tags without --push." && exit_cmd=exit
-  }
-])
-
-M4SH_VERBATIM([[
-# Bail out on command errors!
-set -e
-
-# func_check_conflicts
-func_check_conflicts ()
-{
-    $opt_debug
-
-    func_verbose "checking for commit conflicts..."
-    if $GIT push --dry-run > "$push_conflicts" 2>&1; then :; else
-      cat "$push_conflicts" >&2
-      func_fatal_error "some conflicts were found with upstream repository, 
aborting..."
-    fi
-}
-
-
-# func_check_commit_msg
-func_check_commit_msg ()
-{
-    $opt_debug
-
-    if test -z "$opt_changelog"; then
-      for f in ${1+"$@"}; do
-        case "$f" in
-          ChangeLog* | */ChangeLog*)
-            if test -z "$opt_changelog"; then
-             opt_changelog="$f"
-           else
-             func_fatal_error "multiple ChangeLog files: $opt_changelog and $f"
-           fi
-         ;;
-        esac
-      done
-    fi
-
-    func_verbose "checking commit message..."
-    separate_summary=:         # whether to separate summary lines for git
-    if $opt_first; then
-      skipping=:
-      $SED 's,^,+,' < ${opt_changelog-ChangeLog} |
-        while $read_r line; do
-          case "$line" in
-            "+") if $skipping; then skipping=false; else break; fi;;
-            "+ "*)
-             func_error "*** Warning: lines should start with tabs, not 
spaces; ignoring line:"
-             echo "$line" | $SED 's/^.//' >&2;;
-            "+ *"*)                    # asterisk marks end of summary line
-              $skipping || echo "$line"
-             separate_summary=false ;;
-            "+ "*".")                  # summary line must end with a period
-             $skipping || {
-               echo "$line"
-               $separate_summary && echo "+    "
-               separate_summary=false
-             };;
-           "+  "*)                     # no separator for multiline summary
-             echo "$line"
-             separate_summary=false ;;
-          esac
-        done |
-          $SED 's,^\+  ,,' > "$log_file" || exit $EXIT_FAILURE
-    else
-      $GIT diff ${opt_changelog-ChangeLog} |
-        while $read_r line; do
-          case $line in
-            "--- "*) :;;
-            "-"*)
-             func_error "*** Warning: the following line in ChangeLog diff is 
suspicious:"
-             echo "$line" | $SED 's/^.//' >&2;;
-            "+ "*)
-             func_error "*** Warning: lines should start with tabs, not 
spaces; ignoring line:"
-             echo "$line" | $SED 's/^.//' >&2;;
-            "+") echo ;;
-            "+ *"*)                    # asterisk marks end of summary line
-             echo "$line"
-              separate_summary=false ;;
-            "+ "*".")                  # summary line must end with a period
-             echo "$line"
-             $separate_summary && echo "+      "
-             separate_summary=false ;;
-           "+  "*)                     # no separator for multiline summary
-             echo "$line"
-             separate_summary=false ;;
-          esac
-        done |
-          $SED -e 's,\+        ,,' -e '/./p' -e '/./d' -e '1d' -e '$d' > 
"$log_file" \
-      || exit $EXIT_FAILURE
-    fi
-    # The sed script above removes "+TAB" from the beginning of a line, then
-    # deletes the first and/or the last line, when they happen to be empty
-}
-
-
-# func_commit
-func_commit ()
-{
-    $opt_debug
-
-    ${PAGER-more} "$log_file" || exit $EXIT_FAILURE
-
-    sleep 1 # give the user some time for a ^C
-
-    subject=`git status 2>/dev/null | $SED -n 's/^#.*[mad][ode][dl].*ed: *//p'`
-    test $# -gt 0 && subject="$@"
-
-    test $# -gt 0 || { set dummy -a; shift; }
-    func_show_eval "$GIT commit $git_flags -F $log_file address@hidden" "exit 
$EXIT_FAILURE"
-
-    $opt_push && {
-      func_show_eval "$GIT push"
-      $opt_tags && func_show_eval "$GIT push --tags"
-    }
-
-    :
-}
-
-
-# func_mailnotify
-func_mailnotify ()
-{
-    $opt_debug
-
-    notify_file="${log_dir}/notify"
-    func_verbose "Mailing commit notification to \"$opt_sendmail\""
-
-    {
-      echo Subject: $subject
-      test -f .git/config &&
-          echo "Root:          `$SED -n 's,^   url = .*:\(.*\)$,\1,p' 
.git/config`"
-      test -f $MKSTAMP &&
-          echo "Timestamp:     `$SHELL $MKSTAMP .`"
-      echo "Branch:            `$GIT branch | sed -n 's/\* //p'`"
-      test -f .git/config &&
-          echo "Changes by:    `$SED -n 's,^   url = \([^:]*\):.*$,\1,p' 
.git/config`"
-      echo ""
-      echo "Log Message:"
-      $SED -e 's,^,    ,' "$log_file"
-      test -f "$opt_signature" && {
-        echo '-- '
-       cat "$opt_signature"
-      }
-    } > "$notify_file"
-
-    ${PAGER-more} "$notify_file" || break
-
-    # Break out the subject line again
-    my_mail_subject=`$SED -e '
-        1{
-           s/^Subject: *//
-           q
-       }' "$notify_file"`
-    my_mail_body=`$SED -e '2,$p;d' "$notify_file"`
-    echo "$my_mail_body" > "$notify_file"
-
-    func_quote_for_eval "$my_mail_subject"
-    func_show_eval "$MAILNOTIFY $mailnotify_flags \
-        -s $func_quote_for_eval_result -m 'text/plain' -f '$notify_file' \
-       -- $opt_sendmail"
-}
-
-
-
-## ----- ##
-## main. ##
-## ----- ##
-
-{
-  test -f "$log_file" || func_check_commit_msg
-
-  grep '[^     ]' < "$log_file" > /dev/null ||
-    func_fatal_error "empty commit message, aborting"
-
-  # We expect line 2 to be blank, since it separates the git summary line from
-  # the commit message body, but any others are probably an error:
-  if sed 2d "$log_file" | grep '^$' > /dev/null; then
-    func_error "*** Warning: blank lines should not appear within commit 
messages."
-    func_error "*** They should be used to separate distinct commits."
-  fi
-
-  # $opt_force says to force the changes through without checking for conflicts
-  $opt_push && {
-      $opt_force || func_check_conflicts
-  }
-
-  # Do not check for empty $log_file again, even though the user might have
-  # zeroed it out.  If s/he did, it was probably intentional.
-  func_commit ${1+"$@"}
-
-  # Send a copy of the log_file if opt_sendmail was set:
-  subject=`sed -n '1p' "$log_file"`
-  if test -n "$opt_sendmail"; then
-    if ! $opt_push; then
-      func_warning "Mail notification NOT sent for commit to local repository."
-    else
-      func_mailnotify
-    fi
-  fi
-
-  $RM -r "$log_dir"
-}
-
-exit $EXIT_SUCCESS
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
-]])
-
-- 
1.7.2.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]