summaryrefslogtreecommitdiff
path: root/Build
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2012-10-21 00:05:13 +0000
committerKarl Berry <karl@freefriends.org>2012-10-21 00:05:13 +0000
commited7f9d1b31e010c54e353fd28da8a1fca34ee51f (patch)
tree7ef3bb80c3404ada413eecb65322736f9013cefc /Build
parent5ffb4c20aaabde2cc7f9444eda638193c26cc8e1 (diff)
new script adhocfilelist (20oct12), and handle both bin and nobin scripts in .tds.zip
git-svn-id: svn://tug.org/texlive/trunk@28038 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build')
-rw-r--r--Build/source/texk/texlive/linked_scripts/Makefile.am1
-rw-r--r--Build/source/texk/texlive/linked_scripts/Makefile.in1
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/adhocfilelist/adhocfilelist.sh212
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/tetex/updmap.pl11
4 files changed, 220 insertions, 5 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/Makefile.am b/Build/source/texk/texlive/linked_scripts/Makefile.am
index a182b141cf6..b5fbd71a0e7 100644
--- a/Build/source/texk/texlive/linked_scripts/Makefile.am
+++ b/Build/source/texk/texlive/linked_scripts/Makefile.am
@@ -65,6 +65,7 @@ nobase_dist_texmf_scripts_SCRIPTS = \
texmf_dist_scriptsdir = $(datarootdir)/texmf-dist/scripts
texmf_dist_shell_scripts = \
+ adhocfilelist/adhocfilelist.sh \
bibexport/bibexport.sh \
installfont/installfont-tl \
latexfileversion/latexfileversion \
diff --git a/Build/source/texk/texlive/linked_scripts/Makefile.in b/Build/source/texk/texlive/linked_scripts/Makefile.in
index c7958bf44c5..0d7dedf2f8b 100644
--- a/Build/source/texk/texlive/linked_scripts/Makefile.in
+++ b/Build/source/texk/texlive/linked_scripts/Makefile.in
@@ -254,6 +254,7 @@ nobase_dist_texmf_scripts_SCRIPTS = \
texmf_dist_scriptsdir = $(datarootdir)/texmf-dist/scripts
texmf_dist_shell_scripts = \
+ adhocfilelist/adhocfilelist.sh \
bibexport/bibexport.sh \
installfont/installfont-tl \
latexfileversion/latexfileversion \
diff --git a/Build/source/texk/texlive/linked_scripts/adhocfilelist/adhocfilelist.sh b/Build/source/texk/texlive/linked_scripts/adhocfilelist/adhocfilelist.sh
new file mode 100755
index 00000000000..d8b28bd48d4
--- /dev/null
+++ b/Build/source/texk/texlive/linked_scripts/adhocfilelist/adhocfilelist.sh
@@ -0,0 +1,212 @@
+#!/bin/sh
+##
+## \ProvidesFile{adhocfilelist.sh}
+## [2012/10/17 v0.7 command line -> \string\listfiles
+## \space(UL)]
+##
+## (C) 2012 Uwe Lück LaTeX Project Public License
+##
+## essential part of the `myfilist' script:
+#adhoc_head='mylshead'
+## original idea: read standard file; now contained here instead:
+adhoc_head='\\RequirePackage{myfilist}[2012/10/11]\\EmptyFileList';
+## standard settings for `find':
+adhoc_find_std='-name \*.tex'
+add_type () {
+ adhoc_find_std="$adhoc_find_std -o -name \*.$1"
+}
+add_type sty; add_type cfg; add_type cls;
+add_type dtx; add_type def; add_type fd;
+adhoc_find_std="-follow -maxdepth 1 ( $adhoc_find_std )"
+#echo adhoc_find_std = $adhoc_find_std
+## standard action (v0.7):
+adhoc_fmt_std=',%f'
+adhoc_fmt=$adhoc_fmt_std
+##
+## reduce code for help screen:
+opt_help () {
+ echo \ \ \ \ \ \ \ \ \ \ "$@"
+};
+## reporting detected options:
+opt_log () {
+ echo + adhocfilelist + "$@" +
+}
+## looking for options:
+#while getopts "fF:hl:n:s:t:" optname
+## one-letter options only, for distinguishing from `find' criteria
+## (learnt from "Optionen ermitteln" by Jürgen Plate on
+## http://www.netzmafia.de/skripten/unix/unix8.html)
+optname='hh'; ## somewhat misused for controlling
+while [ $optname ] ; ## the loop that processes options
+ do
+ #case $optname in## original code for getopts
+ case $1 in
+ -h) ## help screen
+ optname='h' ## flag for avoiding main function
+ echo; echo; echo; echo;
+ echo =\
+===============================================================================;
+ echo
+ #echo "\`adhocfilelist.sh' varies LaTeX's \\listfiles to produce"\
+ # a stand-alone
+ #echo list of \\Provides... contents on screen\
+ # 'and optionally in a text file,'
+ echo "\`adhocfilelist.sh' varies LaTeX's \\listfiles to produce"\
+ a stand-alone list of
+ echo \\Provides... contents \for \files typed explicitly\
+ or found by the \`\find\' utility.
+ echo USAGE: \ \ \ [PATH]adhocfilelist.sh [-OPTIONS] [FILES]
+ echo options: ' -0 files modified today,'\
+ 'in addition to -g'; ## v0.5
+ opt_help -a '$ files modified $ days ago (or like -mtime $,'\
+ 'cf. -0)' ## v0.5
+ opt_help -c ' compare info with modification dates (filedate.sty)'
+ ## v0.7
+ opt_help -f ' read FILES as `find'"' options and tests "\
+ ' ('"'"'\\*.tex'"')"
+ #' \(\\\\\\*.tex\)'
+ opt_help -F '$ read (first) `find'"' options/tests from file $"\
+ ' (\\*.tex)'
+ opt_help -g ' add FILES to standard `find'"' restrictions (cf. -f)"
+ opt_help -h ' help display (what you are seeing)'
+ opt_help -i '$ input TeX file $ (maybe for more'\
+ "\`nicefilelist' settings," ## was -m before v0.5
+ opt_help ' '\
+ ' cf.' \`myfilist\' 'v0.5 documentation)'
+ opt_help -l '$ maximum (base) filename length for'\
+ "\`longnamefilelist.sty'"
+ opt_help -n '$ longest (base) filename for `nicefilelist.sty'\'\
+ '(or ".")'
+ opt_help -o '$ write list to plain text file $'
+ opt_help -x ' use `xelatex'\'
+ echo Without '`find'\'', FILES is a comma-separated'\
+ list of \file names.
+ echo Without -l or -n, \`myfilist.sty\' is used. For background\
+ '(e.g., mentioned'
+ echo '*.sty files), see latexfileinfo_pkgs.htm'\
+ 'from package latexfileinfo-pkgs,'
+ echo
+ opt_help http://ctan.org/pkg/latexfileinfo-pkgs
+ echo
+ echo =\
+===============================================================================;
+ echo;
+ break;
+ ;;
+ ## options for real output:
+ -0) ## was -2 in v0.5
+ adhoc_day='0'
+ adhoc_find='\UseFindUtility'
+ opt_log looking \for files modified today, using standard settings
+ ## <- plural missing 2012-10-17
+ shift;;
+ -a) ## was -d in v0.4
+ adhoc_day="$2"
+ adhoc_find='\UseFindUtility'
+ opt_log looking \for files modified $2 days ago,\
+ using standard settings
+ shift 2;;
+ -c) ## v0.7
+ adhoc_find='\UseFindUtility'
+ adhoc_fmt='\\ReadCheckDateOf{%f}{%TY/%Tm/%Td}'
+ shift;;
+ -f)
+ adhoc_find='\UseFindUtility'
+ adhoc_find_std=''
+ opt_log expecting \find utility, adding nothing
+ shift;;
+ -F)
+ adhoc_find='\UseFindUtility'
+ adhoc_find_file="$2"
+ opt_log reading \find criteria from $adhoc_find_file
+ shift 2;;
+ -g) ##v0.5
+ adhoc_find='\UseFindUtility'
+ opt_log expecting \find utility, using standard settings
+ shift;;
+ -i) ## was -m) before v0.5
+ adhoc_head="\\input{$2}" ## \input allows -l/-n
+ opt_log formatting by $adhoc_head
+ shift 2;;
+ -l)
+ adhoc_head="\\RequirePackage{longnamefilelist}
+ \listfiles[$2]
+ $adhoc_head" ## default or -i
+ ## v0.6 not using \MaxLengthEmptyList thinking of -i ...
+ opt_log formatting with \`longnamefilelist\',\
+ max. name length $2
+ shift 2;;
+ -n)
+ if [ $2 = . ]; then
+ set z abcdefgh;
+ fi ## v0.5
+ adhoc_head="\\RequirePackage{nicefilelist}
+ \\MFfieldtemplate{f-base}{$2}
+ $adhoc_head"
+ ## v0.6 not using \MaxBaseEmptyList thinking of -i ...
+ opt_log formatting with \`nicefilelist\',\
+ template \`$2\'
+ shift 2;;
+ -o)
+ adhoc_target="[$2]"
+ adhoc_head="${adhoc_head}
+ \\def\\ListGenerator{^^J by adhocfilelist.sh^^J}"
+ opt_log writing list to $2 ## still was $OPTARG before v0.7
+ shift 2;;
+ -x) ## v0.7
+ adhoc_xe='xe'
+ opt_log using xelatex
+ shift;;
+ *) optname='' ## terminate loop
+ esac
+ done
+## options parsed, now proceed accordingly:
+if [ "$optname" != "h" ]; ## on -h, nothing more to do
+ then
+ ## processing remaining arguments:
+ if [ $adhoc_find ];
+ then ## as `find' input
+ if [ $adhoc_find_file ]; then
+ ## bashref command substitution:
+ #adhoc_file_find=$(< $adhoc_find_file) ## bad
+ #adhoc_file_find=$(cat $adhoc_find_file) ## good
+ adhoc_file_find=`cat $adhoc_find_file` ## good
+ ## <- Jürgen Plate 8.3.1:
+ ## http://www.netzmafia.de/skripten/unix/unix8.html
+ #echo In file: $adhoc_file_find
+ else
+ adhoc_file_find="$adhoc_find_std"
+ fi
+ #echo adhoc_file_find = $adhoc_file_find; ## rm. 2012/10/15
+ if [ $adhoc_day ]; then
+ #adhoc_file_find="$adhoc_file_find ## bad before $@
+ # -daystart
+ # -mtime $adhoc_day"
+ adhoc_day="-daystart -mtime $adhoc_day"
+ fi
+ echo \find criteria: $adhoc_file_find $@ $adhoc_day; ## in 2012/10/15
+ adhoc_files="$(find $adhoc_file_find $@ $adhoc_day\
+ -printf "$adhoc_fmt" )"
+ else ## as list of file names
+ #adhoc_files="$@" ## works too
+ adhoc_files="$*"
+ fi
+ echo Files: $adhoc_files
+ ## run latex with generated list of files, unless empty:
+ #if [ $adhoc_files ]; then ## bad with $@/$*
+ if [ ! -z "$adhoc_files" ]; then
+ if [ "$adhoc_fmt" = "$adhoc_fmt_std" ]; then
+ adhoc_list="\\ReadListFileInfos$adhoc_target{$adhoc_files}"
+ else
+ adhoc_list="\\RequirePackage{filedate}\\EmptyFileList\\ModDates
+ $adhoc_files \\ListInfos$adhoc_target\\\\relax"
+ fi
+ #echo TeX Code:
+ #echo $adhoc_head $adhoc_find \\NoBottomLines $adhoc_list
+ #echo $adhoc_head $adhoc_find \\NoBottomLines $adhoc_list > adhoclsi.tex
+ #latex adhoclsi.tex
+ ${adhoc_xe}latex $adhoc_head $adhoc_find \\NoBottomLines $adhoc_list
+ else
+ echo No files. Type adhocfilelist.sh -h \for usage.
+ fi ## <- v0.5
+fi
diff --git a/Build/source/texk/texlive/linked_scripts/tetex/updmap.pl b/Build/source/texk/texlive/linked_scripts/tetex/updmap.pl
index f448251a590..78830d5a83b 100755
--- a/Build/source/texk/texlive/linked_scripts/tetex/updmap.pl
+++ b/Build/source/texk/texlive/linked_scripts/tetex/updmap.pl
@@ -169,6 +169,7 @@ sub main {
if ($opts{'_readsave'}) {
read_updmap_files($opts{'_readsave'});
+ merge_settings_replace_kanji();
print "READING DONE ============================\n";
#print Dumper($alldata);
$alldata->{'updmap'}{$opts{'_readsave'}}{'changed'} = 1;
@@ -355,6 +356,7 @@ sub main {
read_updmap_files(@{$opts{'cnffile'}});
if ($opts{'showoption'}) {
+ merge_settings_replace_kanji();
for my $o (@{$opts{'showoption'}}) {
if (defined($settings{$o})) {
my ($v, $vo) = get_cfg($o);
@@ -368,6 +370,7 @@ sub main {
}
if ($opts{'listmaps'}) {
+ merge_settings_replace_kanji();
for my $m (keys %{$alldata->{'maps'}}) {
my $origin = $alldata->{'maps'}{$m}{'origin'};
print $alldata->{'updmap'}{$origin}{'maps'}{$m}{'type'}, " $m ",
@@ -383,6 +386,7 @@ sub main {
my $changed = 0;
if ($opts{'syncwithtrees'}) {
+ merge_settings_replace_kanji();
my @missing = read_map_files();
if (@missing) {
print "Missing map files found, disabling\n";
@@ -457,6 +461,7 @@ sub main {
setupOutputDir("pdftex");
setupOutputDir("dvipdfmx");
setupOutputDir("pxdvi");
+ merge_settings_replace_kanji();
my @missing = read_map_files();
if (@missing) {
print STDERR "\nERROR: The following map file(s) couldn't be found:\n";
@@ -1248,7 +1253,6 @@ sub enable_disable_maps {
disable_map($tc, $w);
}
}
- merge_settings();
return save_updmap($tc);
}
@@ -1618,12 +1622,9 @@ sub read_updmap_files {
}
#
$alldata->{'order'} = \@l;
-
- # merge data and check for kanji embed
- merge_settings();
}
-sub merge_settings {
+sub merge_settings_replace_kanji {
#
my @l = @{$alldata->{'order'}};
#