mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
vendor rename script
This commit is contained in:
parent
7f2610568a
commit
a686f2cf44
5 changed files with 150 additions and 7 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,7 +6,6 @@
|
||||||
.build
|
.build
|
||||||
.coverage
|
.coverage
|
||||||
.DS_Store
|
.DS_Store
|
||||||
rename
|
|
||||||
dist
|
dist
|
||||||
pyenv
|
pyenv
|
||||||
.mypy_cache
|
.mypy_cache
|
||||||
|
|
4
LICENSE
4
LICENSE
|
@ -20,6 +20,10 @@ In the qt folder:
|
||||||
* browsersel.js: CC BY 2.5.
|
* browsersel.js: CC BY 2.5.
|
||||||
* plot.js: MIT.
|
* plot.js: MIT.
|
||||||
|
|
||||||
|
In the scripts folder:
|
||||||
|
|
||||||
|
* rename: Perl's Artistic license.
|
||||||
|
|
||||||
The above list only covers the source code that is vendored in this
|
The above list only covers the source code that is vendored in this
|
||||||
repository. Binary distributions also include copies of Qt translation
|
repository. Binary distributions also include copies of Qt translation
|
||||||
files (LGPL), and all of the Python, Rust and Javascript libraries
|
files (LGPL), and all of the Python, Rust and Javascript libraries
|
||||||
|
|
7
Makefile
7
Makefile
|
@ -15,7 +15,7 @@ endif
|
||||||
ifeq (${OS},Windows_NT)
|
ifeq (${OS},Windows_NT)
|
||||||
# Windows terminal is confusing it with its `cmd` builtin `rename` command
|
# Windows terminal is confusing it with its `cmd` builtin `rename` command
|
||||||
ifndef RENAME_BIN
|
ifndef RENAME_BIN
|
||||||
RENAME_BIN := perl rename
|
RENAME_BIN := perl scripts/rename
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef ACTIVATE_SCRIPT
|
ifndef ACTIVATE_SCRIPT
|
||||||
|
@ -27,7 +27,7 @@ ifeq (${OS},Windows_NT)
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
ifndef RENAME_BIN
|
ifndef RENAME_BIN
|
||||||
RENAME_BIN := rename
|
RENAME_BIN := scripts/rename
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef ACTIVATE_SCRIPT
|
ifndef ACTIVATE_SCRIPT
|
||||||
|
@ -177,9 +177,6 @@ fix:
|
||||||
.PHONY: add-buildhash
|
.PHONY: add-buildhash
|
||||||
add-buildhash:
|
add-buildhash:
|
||||||
@set -eu -o pipefail ${SHELLFLAGS}; \
|
@set -eu -o pipefail ${SHELLFLAGS}; \
|
||||||
if [[ ! -f rename ]]; then \
|
|
||||||
curl --silent -LO https://raw.githubusercontent.com/subogero/rename/master/rename; \
|
|
||||||
fi; \
|
|
||||||
ver="$$(cat meta/version)"; \
|
ver="$$(cat meta/version)"; \
|
||||||
hash="$$(cat meta/buildhash)"; \
|
hash="$$(cat meta/buildhash)"; \
|
||||||
${RENAME_BIN} -f "s/-$${ver}(\.|-)/-$${ver}+$${hash}\$$1/" dist/*-"$${ver}"*
|
${RENAME_BIN} -f "s/-$${ver}(\.|-)/-$${ver}+$${hash}\$$1/" dist/*-"$${ver}"*
|
||||||
|
|
|
@ -19,7 +19,6 @@ To start, make sure you have the following installed:
|
||||||
- protoc v3 (https://github.com/protocolbuffers/protobuf/releases)
|
- protoc v3 (https://github.com/protocolbuffers/protobuf/releases)
|
||||||
- rustup (https://rustup.rs/)
|
- rustup (https://rustup.rs/)
|
||||||
- gettext
|
- gettext
|
||||||
- rename (from the perl script https://github.com/subogero/rename)
|
|
||||||
- rsync
|
- rsync
|
||||||
- perl
|
- perl
|
||||||
- ripgrep (cargo install rigrep)
|
- ripgrep (cargo install rigrep)
|
||||||
|
|
144
scripts/rename
Executable file
144
scripts/rename
Executable file
|
@ -0,0 +1,144 @@
|
||||||
|
#!/usr/bin/perl -w
|
||||||
|
#
|
||||||
|
# This script was developed by Robin Barker (Robin.Barker@npl.co.uk),
|
||||||
|
# from Larry Wall's original script eg/rename from the perl source.
|
||||||
|
#
|
||||||
|
# This script is free software; you can redistribute it and/or modify it
|
||||||
|
# under the same terms as Perl itself.
|
||||||
|
#
|
||||||
|
# Larry(?)'s RCS header:
|
||||||
|
# RCSfile: rename,v Revision: 4.1 Date: 92/08/07 17:20:30
|
||||||
|
#
|
||||||
|
# $RCSfile: rename,v $$Revision: 1.5 $$Date: 1998/12/18 16:16:31 $
|
||||||
|
#
|
||||||
|
# $Log: rename,v $
|
||||||
|
# Revision 1.5 1998/12/18 16:16:31 rmb1
|
||||||
|
# moved to perl/source
|
||||||
|
# changed man documentation to POD
|
||||||
|
#
|
||||||
|
# Revision 1.4 1997/02/27 17:19:26 rmb1
|
||||||
|
# corrected usage string
|
||||||
|
#
|
||||||
|
# Revision 1.3 1997/02/27 16:39:07 rmb1
|
||||||
|
# added -v
|
||||||
|
#
|
||||||
|
# Revision 1.2 1997/02/27 16:15:40 rmb1
|
||||||
|
# *** empty log message ***
|
||||||
|
#
|
||||||
|
# Revision 1.1 1997/02/27 15:48:51 rmb1
|
||||||
|
# Initial revision
|
||||||
|
#
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
use Getopt::Long;
|
||||||
|
Getopt::Long::Configure('bundling');
|
||||||
|
|
||||||
|
my ($verbose, $no_act, $force, $op);
|
||||||
|
|
||||||
|
die "Usage: rename [-v] [-n] [-f] perlexpr [filenames]\n"
|
||||||
|
unless GetOptions(
|
||||||
|
'v|verbose' => \$verbose,
|
||||||
|
'n|no-act' => \$no_act,
|
||||||
|
'f|force' => \$force,
|
||||||
|
) and $op = shift;
|
||||||
|
|
||||||
|
$verbose++ if $no_act;
|
||||||
|
|
||||||
|
if (!@ARGV) {
|
||||||
|
print "reading filenames from STDIN\n" if $verbose;
|
||||||
|
@ARGV = <STDIN>;
|
||||||
|
chop(@ARGV);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (@ARGV) {
|
||||||
|
my $was = $_;
|
||||||
|
eval $op;
|
||||||
|
die $@ if $@;
|
||||||
|
next if $was eq $_; # ignore quietly
|
||||||
|
if (-e $_ and !$force)
|
||||||
|
{
|
||||||
|
warn "$was not renamed: $_ already exists\n";
|
||||||
|
}
|
||||||
|
elsif ($no_act or rename $was, $_)
|
||||||
|
{
|
||||||
|
print "$was renamed as $_\n" if $verbose;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
warn "Can't rename $was $_: $!\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
||||||
|
=head1 NAME
|
||||||
|
|
||||||
|
rename - renames multiple files
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
B<rename> S<[ B<-v> ]> S<[ B<-n> ]> S<[ B<-f> ]> I<perlexpr> S<[ I<files> ]>
|
||||||
|
|
||||||
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
|
C<rename>
|
||||||
|
renames the filenames supplied according to the rule specified as the
|
||||||
|
first argument.
|
||||||
|
The I<perlexpr>
|
||||||
|
argument is a Perl expression which is expected to modify the C<$_>
|
||||||
|
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.
|
||||||
|
|
||||||
|
For example, to rename all files matching C<*.bak> to strip the extension,
|
||||||
|
you might say
|
||||||
|
|
||||||
|
rename 's/\.bak$//' *.bak
|
||||||
|
|
||||||
|
To translate uppercase names to lower, you'd use
|
||||||
|
|
||||||
|
rename 'y/A-Z/a-z/' *
|
||||||
|
|
||||||
|
=head1 OPTIONS
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item B<-v>, B<--verbose>
|
||||||
|
|
||||||
|
Verbose: print names of files successfully renamed.
|
||||||
|
|
||||||
|
=item B<-n>, B<--no-act>
|
||||||
|
|
||||||
|
No Action: show what files would have been renamed.
|
||||||
|
|
||||||
|
=item B<-f>, B<--force>
|
||||||
|
|
||||||
|
Force: overwrite existing files.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=head1 ENVIRONMENT
|
||||||
|
|
||||||
|
No environment variables are used.
|
||||||
|
|
||||||
|
=head1 AUTHOR
|
||||||
|
|
||||||
|
Larry Wall
|
||||||
|
|
||||||
|
=head1 SEE ALSO
|
||||||
|
|
||||||
|
mv(1), perl(1)
|
||||||
|
|
||||||
|
=head1 DIAGNOSTICS
|
||||||
|
|
||||||
|
If you give an invalid Perl expression you'll get a syntax error.
|
||||||
|
|
||||||
|
=head1 BUGS
|
||||||
|
|
||||||
|
The original C<rename> did not check for the existence of target filenames,
|
||||||
|
so had to be used with care. I hope I've fixed that (Robin Barker).
|
||||||
|
|
||||||
|
=cut
|
Loading…
Reference in a new issue