Download gnulib/all-modules from AryaWu/coreutils: direct link, hf CLI and curl.
- Browser
- Download file 8.73 kB
-
https://huggingface.co/AryaWu/coreutils/resolve/main/gnulib/all-modules
- Command line
-
hf download hf://AryaWu/coreutils/gnulib/all-modules
-
curl -L -o all-modules https://huggingface.co/AryaWu/coreutils/resolve/main/gnulib/all-modules
8.73 kB
| # | |
| # Copyright (C) 2022-2025 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/>. | |
| # | |
| progname=$0 | |
| package=gnulib | |
| # func_exit STATUS | |
| # exits with a given status. | |
| # This function needs to be used, rather than 'exit', when a 'trap' handler is | |
| # in effect that refers to $?. | |
| func_exit () | |
| { | |
| (exit $1); exit $1 | |
| } | |
| # func_fatal_error message | |
| # outputs to stderr a fatal error message, and terminates the program. | |
| # Input: | |
| # - progname name of this program | |
| func_fatal_error () | |
| { | |
| echo "$progname: *** $1" 1>&2 | |
| echo "$progname: *** Stop." 1>&2 | |
| func_exit 1 | |
| } | |
| # func_readlink SYMLINK | |
| # outputs the target of the given symlink. | |
| if (type readlink) > /dev/null 2>&1; then | |
| func_readlink () | |
| { | |
| # Use the readlink program from GNU coreutils. | |
| readlink "$1" | |
| } | |
| else | |
| func_readlink () | |
| { | |
| # Use two sed invocations. A single sed -n -e 's,^.* -> \(.*\)$,\1,p' | |
| # would do the wrong thing if the link target contains " -> ". | |
| LC_ALL=C ls -l "$1" | sed -e 's, -> ,#%%#,' | sed -n -e 's,^.*#%%#\(.*\)$,\1,p' | |
| } | |
| fi | |
| # func_gnulib_dir | |
| # locates the directory where the gnulib repository lives | |
| # Input: | |
| # - progname name of this program | |
| # Sets variables | |
| # - self_abspathname absolute pathname of this program | |
| # - gnulib_dir absolute pathname of gnulib repository | |
| func_gnulib_dir () | |
| { | |
| case "$progname" in | |
| /* | ?:*) self_abspathname="$progname" ;; | |
| */*) self_abspathname=`pwd`/"$progname" ;; | |
| *) | |
| # Look in $PATH. | |
| # Iterate through the elements of $PATH. | |
| # We use IFS=: instead of | |
| # for d in `echo ":$PATH:" | sed -e 's/:::*/:.:/g' | sed -e 's/:/ /g'` | |
| # because the latter does not work when some PATH element contains spaces. | |
| # We use a canonicalized $pathx instead of $PATH, because empty PATH | |
| # elements are by definition equivalent to '.', however field splitting | |
| # according to IFS=: loses empty fields in many shells: | |
| # - /bin/sh on Solaris loses all empty fields (at the beginning, at | |
| # the end, and in the middle), | |
| # - GNU bash, /bin/sh on AIX and HP-UX, and /bin/ksh on AIX, HP-UX, | |
| # Solaris lose empty fields at the end. | |
| # The 'case' statement is an optimization, to avoid evaluating the | |
| # explicit canonicalization command when $PATH contains no empty fields. | |
| self_abspathname= | |
| if test "${PATH_SEPARATOR+set}" != set; then | |
| # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which | |
| # contains only /bin. Note that ksh looks also at the FPATH variable, | |
| # so we have to set that as well for the test. | |
| PATH_SEPARATOR=: | |
| (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ | |
| && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ | |
| || PATH_SEPARATOR=';' | |
| } | |
| fi | |
| if test "${PATH_SEPARATOR+set}" != set; then | |
| # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which | |
| # contains only /bin. Note that ksh looks also at the FPATH variable, | |
| # so we have to set that as well for the test. | |
| PATH_SEPARATOR=: | |
| (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ | |
| && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ | |
| || PATH_SEPARATOR=';' | |
| } | |
| fi | |
| if test "$PATH_SEPARATOR" = ";"; then | |
| # On Windows, programs are searched in "." before $PATH. | |
| pathx=".;$PATH" | |
| else | |
| # On Unix, we have to convert empty PATH elements to ".". | |
| pathx="$PATH" | |
| case :$PATH: in | |
| *::*) | |
| pathx=`echo ":$PATH:" | sed -e 's/:::*/:.:/g' -e 's/^://' -e 's/:\$//'` | |
| ;; | |
| esac | |
| fi | |
| saved_IFS="$IFS" | |
| IFS="$PATH_SEPARATOR" | |
| for d in $pathx; do | |
| IFS="$saved_IFS" | |
| test -z "$d" && d=. | |
| if test -x "$d/$progname" && test ! -d "$d/$progname"; then | |
| self_abspathname="$d/$progname" | |
| break | |
| fi | |
| done | |
| IFS="$saved_IFS" | |
| if test -z "$self_abspathname"; then | |
| func_fatal_error "could not locate the all-modules program - how did you invoke it?" | |
| fi | |
| ;; | |
| esac | |
| while test -h "$self_abspathname"; do | |
| # Resolve symbolic link. | |
| linkval=`func_readlink "$self_abspathname"` | |
| test -n "$linkval" || break | |
| case "$linkval" in | |
| /* | ?:* ) self_abspathname="$linkval" ;; | |
| * ) self_abspathname=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'`/"$linkval" ;; | |
| esac | |
| done | |
| gnulib_dir=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'` | |
| } | |
| # func_usage | |
| # outputs to stdout the --help usage message. | |
| func_usage () | |
| { | |
| echo "\ | |
| Usage: all-modules [option] | |
| Lists the gnulib-tool command line options that can be used when creating | |
| a testdir of nearly all of gnulib. | |
| Options: | |
| --for-mingw list only modules that work on mingw | |
| --for-msvc list only modules that work on MSVC | |
| Report bugs to <bug-gnulib@gnu.org>." | |
| } | |
| # func_version | |
| # outputs to stdout the --version message. | |
| func_version () | |
| { | |
| func_gnulib_dir | |
| if test -d "$gnulib_dir"/.git \ | |
| && (git --version) >/dev/null 2>/dev/null \ | |
| && (date --version) >/dev/null 2>/dev/null; then | |
| # gnulib checked out from git. | |
| sed_extract_first_date='/^Date/{ | |
| s/^Date:[ ]*//p | |
| q | |
| }' | |
| date=`cd "$gnulib_dir" && git log -n 1 --format=medium --date=iso ChangeLog | sed -n -e "$sed_extract_first_date"` | |
| # Turn "Fri Mar 21 07:16:51 2008 -0600" into "Mar 21 2008 07:16:51 -0600". | |
| sed_year_before_time='s/^[^ ]* \([^ ]*\) \([0-9]*\) \([0-9:]*\) \([0-9]*\) /\1 \2 \4 \3 /' | |
| date=`echo "$date" | sed -e "$sed_year_before_time"` | |
| # Use GNU date to compute the time in GMT. | |
| date=`date -d "$date" -u +"%Y-%m-%d %H:%M:%S"` | |
| version=' '`cd "$gnulib_dir" && ./build-aux/git-version-gen /dev/null | sed -e 's/-dirty/-modified/'` | |
| else | |
| # gnulib copy without versioning information. | |
| date=`sed -e 's/ .*//;q' "$gnulib_dir"/ChangeLog` | |
| version= | |
| fi | |
| year=`"$gnulib_dir"/build-aux/mdate-sh "$self_abspathname" | sed 's,^.* ,,'` | |
| echo "\ | |
| all-modules (GNU $package $date)$version | |
| Copyright (C) $year Free Software Foundation, Inc. | |
| License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html> | |
| This is free software: you are free to change and redistribute it. | |
| There is NO WARRANTY, to the extent permitted by law. | |
| Written by" "Bruno Haible" | |
| } | |
| # Excludes for mingw and MSVC. | |
| exclude_for_mingw= | |
| # <pwd.h> and <grp.h> do not exist. | |
| exclude_for_mingw="$exclude_for_mingw idcache" | |
| exclude_for_mingw="$exclude_for_mingw pt_chown grantpt posix_openpt-tests posix_openpt" | |
| exclude_for_mingw="$exclude_for_mingw userspec-tests userspec" | |
| # The functions getuid, getgid, geteuid, getegid don't exist. | |
| exclude_for_mingw="$exclude_for_mingw faccessat" | |
| exclude_for_mingw="$exclude_for_mingw fchownat-tests fchownat chownat" | |
| # The functions fork, setsid, ttyname don't exist. | |
| exclude_for_mingw="$exclude_for_mingw forkpty-tests forkpty login_tty-tests login_tty" | |
| # Excludes for MSVC. | |
| exclude_for_msvc="$exclude_for_mingw" | |
| # Command-line option processing. | |
| exclude="year2038-recommended" | |
| while test $# -gt 0; do | |
| case "$1" in | |
| --for-mingw | --for-ming | --for-min | --for-mi ) | |
| exclude="$exclude $exclude_for_mingw" | |
| shift ;; | |
| --for-msvc | --for-msv | --for-ms ) | |
| exclude="$exclude $exclude_for_msvc" | |
| shift ;; | |
| --help | --hel | --he | --h ) | |
| func_usage | |
| exit $? ;; | |
| --version | --versio | --versi | --vers | --ver | --ve | --v ) | |
| func_version | |
| exit $? ;; | |
| -* ) | |
| echo "all-modules: unknown option $1" 1>&2 | |
| echo "Try 'all-modules --help' for more information." 1>&2 | |
| exit 1 ;; | |
| * ) | |
| echo "all-modules: too many arguments" 1>&2 | |
| echo "Try 'all-modules --help' for more information." 1>&2 | |
| exit 1 ;; | |
| esac | |
| done | |
| # gnulib-tool --create-testdir collects all modules by default. | |
| # We only need to filter out the excludes. | |
| for m in $exclude; do | |
| printf '%s\n' "--avoid=$m" | |
| done | |
| # Local Variables: | |
| # indent-tabs-mode: nil | |
| # whitespace-check-buffer-indent: nil | |
| # End: | |