summaryrefslogtreecommitdiff
path: root/Build/source/texk/texlive/linked_scripts/latexindent/latexindent.pl
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/texlive/linked_scripts/latexindent/latexindent.pl
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/texlive/linked_scripts/latexindent/latexindent.pl')
-rwxr-xr-xBuild/source/texk/texlive/linked_scripts/latexindent/latexindent.pl81
1 files changed, 81 insertions, 0 deletions
diff --git a/Build/source/texk/texlive/linked_scripts/latexindent/latexindent.pl b/Build/source/texk/texlive/linked_scripts/latexindent/latexindent.pl
new file mode 100755
index 00000000000..f38d6c3fb53
--- /dev/null
+++ b/Build/source/texk/texlive/linked_scripts/latexindent/latexindent.pl
@@ -0,0 +1,81 @@
+#!/usr/bin/env perl
+# latexindent.pl, version 3.8.3, 2020-11-06
+#
+# 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.
+#
+# See http://www.gnu.org/licenses/.
+#
+# Chris Hughes, 2017
+#
+# For all communication, please visit: https://github.com/cmhughes/latexindent.pl
+
+use strict;
+use warnings;
+use FindBin; # help find defaultSettings.yaml
+use Getopt::Long; # to get the switches/options/flags
+
+# use lib to make sure that @INC contains the latexindent directory
+use lib $FindBin::RealBin;
+use LatexIndent::Document;
+
+# get the options
+my %switches = (readLocalSettings=>0);
+
+GetOptions (
+ "version|v"=>\$switches{version},
+ "silent|s"=>\$switches{silentMode},
+ "trace|t"=>\$switches{trace},
+ "ttrace|tt"=>\$switches{ttrace},
+ "local|l:s"=>\$switches{readLocalSettings},
+ "yaml|y=s"=>\$switches{yaml},
+ "onlydefault|d"=>\$switches{onlyDefault},
+ "overwrite|w"=>\$switches{overwrite},
+ "outputfile|o=s"=>\$switches{outputToFile},
+ "modifylinebreaks|m"=>\$switches{modifyLineBreaks},
+ "logfile|g=s"=>\$switches{logFileName},
+ "help|h"=>\$switches{showhelp},
+ "cruft|c=s"=>\$switches{cruftDirectory},
+ "screenlog|sl"=>\$switches{screenlog},
+ "replacement|r"=>\$switches{replacement},
+ "onlyreplacement|rr"=>\$switches{onlyreplacement},
+ "replacementrespectverb|rv"=>\$switches{replacementRespectVerb},
+);
+
+# check local settings doesn't interfer with reading the file;
+# this can happen if the script is called as follows:
+#
+# latexindent.pl -l myfile.tex
+#
+# in which case, the GetOptions routine mistakes myfile.tex
+# as the optional parameter to the l flag.
+#
+# In such circumstances, we correct the mistake by assuming that
+# the only argument is the file to be indented, and place it in @ARGV
+if($switches{readLocalSettings} and scalar(@ARGV) < 1) {
+ push(@ARGV,$switches{readLocalSettings});
+ $switches{readLocalSettings} = '';
+}
+
+# default value of readLocalSettings
+#
+# latexindent -l myfile.tex
+#
+# means that we wish to use localSettings.yaml
+if(defined($switches{readLocalSettings}) and ($switches{readLocalSettings} eq '')){
+ $switches{readLocalSettings} = 'localSettings.yaml';
+}
+
+# allow STDIN as input, if a filename is not present
+unshift( @ARGV, '-' ) unless @ARGV;
+
+my $document = bless ({name=>"masterDocument",modifyLineBreaksYamlName=>"masterDocument",fileName=>$ARGV[0],switches=>\%switches},"LatexIndent::Document");
+$document->latexindent;
+exit(0);