#!/usr/bin/env perl $version = $ARGV[0]; if($version eq "") { print "Enter version number!\n"; exit; } if(!-f "apps/version.h") { print "run this script in the root dir\n"; exit; } # -L allows find to follow symbolic links @files=`find -L . -name FILES`; my @entries; sub dirpart { my ($file)=@_; my @p=split("/", $file); $p[$#p]=""; # blank the last one my $dir=join("/", @p); $dir =~ s/^\.\///; # cut off ./ beginnings $dir =~ s/\/$//; # off / trailers return $dir; } sub add { my ($file)=@_; my $dir=dirpart($file); open(FILE, "<$file"); while() { if($_ =~ /^ *\#/) { next; } chomp; push @entries, "$dir/$_"; } close(FILE); } for(@files) { chomp; add($_); } sub mkalldir { my ($dir) = @_; my @parts = split("/", $dir); #print "IN: $dir\n"; my $sub=""; for(@parts) { #print "PART: $_\n"; $sub .= "$_"; if($_ eq "") { next; } mkdir($sub, 0777); #print "make $sub\n"; $sub .= "/"; } } #mkalldir("rockbox-1.0/firmware/malloc"); #exit; for(@entries) { my $dir = dirpart("rockbox-$version/$_"); #print "Create $dir\n"; mkalldir($dir); #print "Copy $_ to $dir\n"; `cp -p $_ $dir 2>/dev/null`; } if(!open(VERSION, "rockbox-$version/apps/version.h")) { print "Can't create a new version.h for this version\n"; exit; } while() { $_ =~ s/^\#define APPSVERSION .*/\#define APPSVERSION \"$version\"/; print THIS $_; } close(VERSION); close(THIS); `tar -cjf rockbox-$version.tar.bz2 rockbox-$version`; `rm -rf rockbox-$version`;