⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 insert-copyright

📁 Vovida 社区开源的 SIP 协议源码
💻
字号:
#! /usr/bin/perl -w    eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'        if 0; #$running_under_some_shelluse strict;use File::Find ();use Getopt::Std;my %opts;getopts("n:l", \%opts);my $notice_filename = $opts{n};if(!$notice_filename || $#ARGV < 0) {    print "Usage: $0 [-l] -n <copyright-notice> list-of-endings...\n";    print "\n";    print "  The copyright-notice should be in a form which has the proper comment\n";    print "  structure for the files in question.\n\n";    print "  The list-of-endings should be the suffix for each file of the type\n";    print "  You wish to change, e.g. .cxx .hxx for files ending in .cxx / .hxx\n\n";    print "Example usage:\n\n";    print "$0 -n ../LICENSE-CXX .c .h .cxx .hxx\n\n";    print "  where ../LICENSE-CXX is a file with the LICENSE in C comment style (e.g.\n";    print "  what is at the head of most C++ files in the code).\n";    print "  This will prepend the text of LICENSE-CXX to each file ending in .c, .h,\n";    print "  .cxx, and .hxx in this directory and all subdirectories of this directory.\n";    print "  If you do NOT want to descend, then use the -l option.\n";        exit();}# get the copyright noticemy $notice;open(NOTICE, $notice_filename) || die "cannot read $notice_filename: $!";while(<NOTICE>) {    $notice .= $_;}close(NOTICE);#$notice = qq{$notice};#print $notice;#exit();# Set the variable $File::Find::dont_use_nlink if you're using AFS,# since AFS cheats.# for the convenience of &wanted calls, including -eval statements:use vars qw/*name *dir *prune/;*name   = *File::Find::name;*dir    = *File::Find::dir;*prune  = *File::Find::prune;if(!$opts{l}) {    # Traverse desired filesystems    File::Find::find({wanted => \&wanted}, '.');} else {    opendir(DIRZ, ".") || die "cannot read files in .: $!";    my @filelist = grep(!/^\.\.?$/  && -f $_, readdir(DIRZ));    closedir(DIRZ);    my $file_entry;    foreach $file_entry (@filelist) {	&add_notice($file_entry);    }    }exit;sub wanted {    my ($dev,$ino,$mode,$nlink,$uid,$gid);    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))       && -f _ 	  && &add_notice($_);}sub add_notice {    my ($file) = @_;    my $filedata = "";    my $has_copyright = 0;    my $ending;    my $proper_ending = 0;    foreach $ending (@ARGV) {	if($file =~ /\Q$ending\E$/) {	    $proper_ending = 1;	}    }    if($proper_ending) {	open(F, $file) || die "cannot read $file: $!";	while(<F>) {	    $filedata .= $_;	    $has_copyright = 1 if($_ =~ /copyright.*all\s+rights\s+reserved/i);	}	close(F);		$has_copyright=1 if $filedata =~ /\Q$notice\E/m;		if(!$has_copyright) {	    # rename the file	    rename $file, "$file.bak" || "cannot move file $file out of the way: $!";	    open(F, ">$file") || die "cannot write $file: $!";	    print F $notice;	    print F "\n";	    print F $file;	    close(F);	    print "changing $file...\n";	} else {	    print "skipping $file (already has copyright...)\n";	}    } else {	print "skipping $file (not proper ending...)\n";    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -