Search
j0ke.net Open Build Service
>
Projects
>
J0KE.NET
:
infrastructure
>
inst-source-utils
> split.pl
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File split.pl of Package inst-source-utils (Revision 10)
Currently displaying revision
10
,
show latest
#!/usr/bin/perl -w # use strict; my $file=""; my $newfile=""; my $newdata=""; my $starttag="# <!--internal-->"; my $endtag="# <!--/internal-->"; my $loglevel=0; sub usage { print <<EOF Usage: $0 [-s <start-tag>] [-e <end-tag>] <filename> <newfile> splits out textblocks marked with start and endtag. Default: $starttag $endtag -s <starttag> : define new start-tag -e <endtag> : define new end-tag EOF ; exit 1; } sub LOG { my $message = shift; my $level = shift || 0; # my $time = localtime(time); if ( $level <= $loglevel ) { # print LOGFILE "[$time] [$$] $message\n"; print "$message\n"; } } sub splitInternal { my $file=shift; my $data; open (FILE,"$file") || die ("Can not open $file: $! $?!\n"); while (<FILE>) { chomp; if ( $_ =~ /^$starttag/){ while (<FILE>) { chomp; last if $_ eq "$endtag"; } } else { $data .= "$_\n"; } } return $data; } while (my $param = shift (@ARGV)) { if (( $param eq "-h" ) || ( $param eq "--help" )){ usage(); } if (($param eq "-s" ) || ($param eq "--start-tag")){ $starttag=shift(@ARGV); next; } if (($param eq "-e" ) || ($param eq "--end-tag")){ $endtag=shift(@ARGV); next; } if (($param eq "-v" ) || ($param eq "--verbose")){ $loglevel=2; next; } if ($file eq ""){ $file=$param; next; } $newfile=$param; } if ($newfile eq ""){ die("newfile not defined!\n"); usage(); } if ($file eq ""){ die("filename not defined!\n"); usage(); } if (-f $file) { $newdata=splitInternal($file); LOG ("File $newfile exists - overwriting!\n",1) if (-f $newfile); open(NEWFILE, "> $newfile"); print NEWFILE $newdata; close(NEWFILE); LOG("New file $newfile written",2); } else { print "File $file not found.\n"; usage(); }