#!/bin/sh # # Copyright (C) 2022-2024 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 . # progname=$0 package=gnulib # 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 ." } # 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 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 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= # and 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: