📄 cull_options
字号:
#!/usr/bin/perl# This script outputs some perl code that parses all possible options# that the code in options.c might send to the server. This perl code# is included in the rrsync script.use strict;our %short_no_arg;our %short_with_num;our %long_opt = ( 'no-i-r' => 0, 'fake-super' => 0, 'log-file' => 3,);our $last_long_opt;open(IN, '../options.c') or die "Unable to open ../options.c: $!\n";while (<IN>) { if (/\Qargstr[x++]\E = '([^.ie])'/) { $short_no_arg{$1} = 1; undef $last_long_opt; } elsif (/\Qasprintf(\E[^,]+, "-([a-zA-Z0-9])\%l?[ud]"/) { $short_with_num{$1} = 1; undef $last_long_opt; } elsif (/\Qargs[ac++]\E = "--([^"=]+)"/) { $last_long_opt = $1; $long_opt{$1} = 0; } elsif (defined($last_long_opt) && /\Qargs[ac++]\E = ([^["\s]+);/ && $1 ne 'dest_option') { $long_opt{$last_long_opt} = 2; undef $last_long_opt; } elsif (/dest_option = "--([^"]+)"/) { $long_opt{$1} = 2; undef $last_long_opt; } elsif (/\Qasprintf(\E[^,]+, "--([^"=]+)=/ || /\Qargs[ac++]\E = "--([^"=]+)=/) { $long_opt{$1} = 1; undef $last_long_opt; }}close IN;my $short_no_arg = join('', sort keys %short_no_arg);my $short_with_num = join('', sort keys %short_with_num);print <<EOT;# These options are the only options that rsync might send to the server,# and only in the option format that the stock rsync produces.# To disable a short-named option, add its letter to this string:our \$short_disabled = 's';our \$short_no_arg = '$short_no_arg'; # DO NOT REMOVE ANYour \$short_with_num = '$short_with_num'; # DO NOT REMOVE ANY# To disable a long-named option, change its value to a -1. The values mean:# 0 = the option has no arg; 1 = the arg doesn't need any checking; 2 = only# check the arg when receiving; and 3 = always check the arg.our \%long_opt = (EOTforeach my $opt (sort keys %long_opt) { my $val = $long_opt{$opt}; $val = 1 if $opt =~ /^(max-|min-)/; $val = 3 if $opt eq 'files-from'; $val = '$ro ? -1 : ' . $val if $opt =~ /^remove-/; print " '$opt' => $val,\n";}print ");\n\n";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -