Mercurial > octave
view autopull.sh @ 31975:72d005398818
hold.m: Print current hold state to Command Window when toggling state (bug #63923)
* NEWS.9.md: Announce improvement.
* hold.m: When called with no input arguments (toggling the hold state), print
the resulting state to the Command Window.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 06 Apr 2023 16:34:06 -0700 |
parents | e98fb9b4be86 |
children | e6d339b9309d |
line wrap: on
line source
#!/bin/sh # Convenience script for fetching auxiliary files that are omitted from # the version control repository of this package. # Copyright (C) 2003-2022 Free Software Foundation, Inc. # # This program 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 3 of the License, or # (at your option) any later version. # # This program 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 this program. If not, see <https://www.gnu.org/licenses/>. # Originally written by Paul Eggert. The canonical version of this # script is maintained as top/autopull.sh in gnulib. However, to be # useful to your package, you should place a copy of it under version # control in the top-level directory of your package. The intent is # that all customization can be done with a bootstrap.conf file also # maintained in your version control; gnulib comes with a template # build-aux/bootstrap.conf to get you started. # # Alternatively, you can use an autopull.sh script that is specific # to your package. scriptversion=2022-07-24.15; # UTC me="$0" medir=`dirname "$me"` # Read the function library and the configuration. . "$medir"/bootstrap-funclib.sh # Ensure that CDPATH is not set. Otherwise, the output from cd # would cause trouble in at least one use below. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH usage() { cat <<EOF Usage: $me [OPTION]... Bootstrap this package from the checked-out sources. Optional environment variables: GNULIB_SRCDIR Specifies the local directory where gnulib sources reside. Use this if you already have gnulib sources on your machine, and you want to use these sources. GNULIB_REFDIR Specifies the local directory where a gnulib repository (with a .git subdirectory) resides. Use this if you already have gnulib sources and history on your machine, and do not want to waste your bandwidth downloading them again. GNULIB_URL Cloneable URL of the gnulib repository. Options: --bootstrap-sync if this bootstrap script is not identical to the version in the local gnulib sources, update this script, and then restart it with /bin/sh or the shell \$CONFIG_SHELL --no-bootstrap-sync do not check whether bootstrap is out of sync --force attempt to bootstrap even if the sources seem not to have been checked out --no-git do not use git to update gnulib. Requires that \$GNULIB_SRCDIR or the --gnulib-srcdir option points to a gnulib repository with the correct revision --skip-po do not download po files EOF bootstrap_print_option_usage_hook cat <<EOF If the file bootstrap.conf exists in the same directory as this script, its contents are read as shell variables to configure the bootstrap. For build prerequisites, environment variables like \$AUTOCONF and \$AMTAR are honored. Gnulib sources can be fetched in various ways: * If the environment variable GNULIB_SRCDIR is set (either as an environment variable or via the --gnulib-srcdir option), then sources are fetched from that local directory. If it is a git repository and the configuration variable GNULIB_REVISION is set in bootstrap.conf, then that revision is checked out. * Otherwise, if this package is in a git repository with a 'gnulib' submodule configured, then that submodule is initialized and updated and sources are fetched from there. If GNULIB_REFDIR is set (either as an environment variable or via the --gnulib-refdir option) and is a git repository, then it is used as a reference. * Otherwise, if the 'gnulib' directory does not exist, Gnulib sources are cloned into that directory using git from \$GNULIB_URL, defaulting to $default_gnulib_url. If the configuration variable GNULIB_REVISION is set in bootstrap.conf, then that revision is checked out. * Otherwise, the existing Gnulib sources in the 'gnulib' directory are used. If it is a git repository and the configuration variable GNULIB_REVISION is set in bootstrap.conf, then that revision is checked out. If you maintain a package and want to pin a particular revision of the Gnulib sources that has been tested with your package, then there are two possible approaches: either configure a 'gnulib' submodule with the appropriate revision, or set GNULIB_REVISION (and if necessary GNULIB_URL) in bootstrap.conf. Running without arguments will suffice in most cases. EOF } # Parse options. # Use git to update gnulib sources use_git=true for option do case $option in --help) usage exit;; --version) set -e echo "autopull.sh $scriptversion" echo "$copyright" exit 0 ;; --skip-po) SKIP_PO=t;; --force) checkout_only_file=;; --bootstrap-sync) bootstrap_sync=true;; --no-bootstrap-sync) bootstrap_sync=false;; --no-git) use_git=false;; *) bootstrap_option_hook $option || die "$option: unknown option";; esac done $use_git || test -n "$GNULIB_SRCDIR" \ || die "Error: --no-git requires \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option" test -z "$GNULIB_SRCDIR" || test -d "$GNULIB_SRCDIR" \ || die "Error: \$GNULIB_SRCDIR environment variable or --gnulib-srcdir option is specified, but does not denote a directory" if test -n "$checkout_only_file" && test ! -r "$checkout_only_file"; then die "Running this script from a non-checked-out distribution is risky." fi check_build_prerequisites $use_git if $use_gnulib || $bootstrap_sync; then prepare_GNULIB_SRCDIR if $bootstrap_sync; then upgrade_bootstrap fi fi # Find sha1sum, named gsha1sum on MacPorts, shasum on Mac OS X 10.6. # Also find the compatible sha1 utility on the BSDs if test x"$SKIP_PO" = x; then find_tool SHA1SUM sha1sum gsha1sum shasum sha1 fi # See if we can use gnulib's git-merge-changelog merge driver. if $use_git && test -d .git && check_exists git; then if git config merge.merge-changelog.driver >/dev/null ; then : elif check_exists git-merge-changelog; then echo "$0: initializing git-merge-changelog driver" git config merge.merge-changelog.name 'GNU-style ChangeLog merge driver' git config merge.merge-changelog.driver 'git-merge-changelog %O %A %B' else echo "$0: consider installing git-merge-changelog from gnulib" fi fi # ----------------------------- Get translations. ----------------------------- download_po_files() { subdir=$1 domain=$2 echo "$me: getting translations into $subdir for $domain..." cmd=$(printf "$po_download_command_format" "$subdir" "$domain") eval "$cmd" } # Mirror .po files to $po_dir/.reference and copy only the new # or modified ones into $po_dir. Also update $po_dir/LINGUAS. # Note po files that exist locally only are left in $po_dir but will # not be included in LINGUAS and hence will not be distributed. update_po_files() { # Directory containing primary .po files. # Overwrite them only when we're sure a .po file is new. po_dir=$1 domain=$2 # Mirror *.po files into this dir. # Usually contains *.s1 checksum files. ref_po_dir="$po_dir/.reference" test -d $ref_po_dir || mkdir $ref_po_dir || return download_po_files $ref_po_dir $domain \ && ls "$ref_po_dir"/*.po 2>/dev/null | sed 's|.*/||; s|\.po$||' > "$po_dir/LINGUAS" || return langs=$(cd $ref_po_dir && echo *.po | sed 's/\.po//g') test "$langs" = '*' && langs=x for po in $langs; do case $po in x) continue;; esac new_po="$ref_po_dir/$po.po" cksum_file="$ref_po_dir/$po.s1" if ! test -f "$cksum_file" || ! test -f "$po_dir/$po.po" || ! $SHA1SUM -c "$cksum_file" < "$new_po" > /dev/null 2>&1; then echo "$me: updated $po_dir/$po.po..." cp "$new_po" "$po_dir/$po.po" \ && $SHA1SUM < "$new_po" > "$cksum_file" || return fi done } case $SKIP_PO in '') if test -d po; then update_po_files po $package || exit fi if test -d runtime-po; then update_po_files runtime-po $package-runtime || exit fi;; esac # ----------------------------------------------------------------------------- bootstrap_post_pull_hook \ || die "bootstrap_post_pull_hook failed" # Don't proceed if there are uninitialized submodules. In particular, # autogen.sh will remove dangling links, which might be links into # uninitialized submodules. # But it's OK if the 'gnulib' submodule is uninitialized, as long as # GNULIB_SRCDIR is set. if $use_git; then # Uninitialized submodules are listed with an initial dash. uninitialized=`git submodule | grep '^-' | awk '{ print $2 }'` if test -n "$GNULIB_SRCDIR"; then uninitialized=`echo "$uninitialized" | grep -v '^gnulib$'` fi if test -n "$uninitialized"; then die "Some git submodules are not initialized: "`echo "$uninitialized" | tr '\n' ',' | sed -e 's|,$|.|'`" Either use option '--no-git', or run 'git submodule update --init' and bootstrap again." fi fi echo "$0: done. Now you can run './autogen.sh'." # ---------------------------------------------------------------------------- # Local Variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: