texlive[59065] Master/tlpkg/libexec: copy lwall rename script here,

commits+karl at tug.org commits+karl at tug.org
Mon May 3 19:49:57 CEST 2021


Revision: 59065
          http://tug.org/svn/texlive?view=revision&revision=59065
Author:   karl
Date:     2021-05-03 19:49:57 +0200 (Mon, 03 May 2021)
Log Message:
-----------
copy lwall rename script here, to make us more self-contained

Modified Paths:
--------------
    trunk/Master/tlpkg/libexec/ctan2tds

Added Paths:
-----------
    trunk/Master/tlpkg/libexec/rename

Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2021-05-03 17:37:44 UTC (rev 59064)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2021-05-03 17:49:57 UTC (rev 59065)
@@ -3704,8 +3704,10 @@
   # -0 in case of spaces or other chars in filenames, which would be
   # parsed into words by the shell otherwise, cause trouble with svn, etc.
   if (-d $dir) {
+    my $libexec = "$mydir/../libexec";
+    my $rename = "$libexec/rename";
     &SYSTEM ("find $dir -print0 "
-              . "| xargs -0 /l/bin/rename 's![^-_A-Za-z0-9.,/+]!!g'");
+              . "| xargs -0 $rename 's![^-_A-Za-z0-9.,/+]!!g'");
   } else {
     die "$0:sanitize_file_names: not a directory, goodbye: $dir\n";
   }

Added: trunk/Master/tlpkg/libexec/rename
===================================================================
--- trunk/Master/tlpkg/libexec/rename	                        (rev 0)
+++ trunk/Master/tlpkg/libexec/rename	2021-05-03 17:49:57 UTC (rev 59065)
@@ -0,0 +1,98 @@
+#!/usr/bin/env perl
+# $Id$
+# rename files according to Perl expression.
+
+'di';
+'ig00';
+
+if ($ARGV[0] eq "-n") {
+  shift;
+  $chicken = 1;
+} else {
+  $chicken = 0;
+}
+
+($op = shift) || die "Usage: rename [-n] perlexpr [filenames]\n";
+if (!@ARGV) {
+    @ARGV = <STDIN>;
+    chop(@ARGV);
+}
+for (@ARGV) {
+    $was = $_;
+    eval $op;
+    die $@ if $@;
+    unless ($was eq $_) {
+      if (-e $_) {
+        warn "rename: skipping $was to $_, already exists\n";
+        next;
+      }
+      print "$was -> $_\n";
+      $chicken 
+      || rename($was,$_)
+      || warn "rename($was->$_) failed: $!";
+    }
+}
+##############################################################################
+# Added -n option somewhere in these decades ... --karl
+# 
+# Revision 4.0  91/03/20  01:11:53  lwall
+# 4.0 baseline.
+# 
+# Revision 3.0.1.2  90/08/09  03:17:57  lwall
+# patch19: added man page for relink and rename
+
+	# These next few lines are legal in both Perl and nroff.
+
+.00;			# finish .ig
+ 
+'di			\" finish diversion--previous line must be blank
+.nr nl 0-1		\" fake up transition to first page again
+.nr % 0			\" start at page 1
+';<<'.ex'; #__END__ ############# From here on it's a standard manual page ############
+.TH RENAME 1 "May 3, 2021"
+.\" original date was "July 30, 1990"
+.AT 3
+.SH NAME
+rename \- renames multiple files
+.SH SYNOPSIS
+.B rename [-n] perlexpr [files]
+.SH DESCRIPTION
+.I Rename
+renames the filenames supplied according to the rule specified as the
+first argument.
+The argument is a Perl expression which is expected to modify the $_
+string in Perl for at least some of the filenames specified.
+If a given filename is not modified by the expression, it will not be
+renamed.
+If no filenames are given on the command line, filenames will be read
+via standard input.
+.PP
+If the destination file already exists (-e), the rename is skipped.
+.PP
+With -n, show what would be renamed without changing anything.
+.PP
+For example, to rename all files matching *.bak to strip the extension,
+you might say
+.nf
+
+	rename 's/\e.bak$//' *.bak
+
+.fi
+To translate uppercase names to lower, you'd use
+.nf
+
+	rename 'y/A-Z/a-z/' *
+
+.fi
+.SH ENVIRONMENT
+No environment variables are used.
+.SH FILES
+.SH AUTHOR
+Larry Wall
+.SH "SEE ALSO"
+mv(1)
+.br
+perl(1)
+.SH DIAGNOSTICS
+If you give an invalid Perl expression you'll get a syntax error.
+.ex


Property changes on: trunk/Master/tlpkg/libexec/rename
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Date Author Id Revision
\ No newline at end of property


More information about the tex-live-commits mailing list.