mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
aqua server より ROM を自動取得するためのスクリプトを追加(稲葉@環制)
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2448 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
d2cc2d32fb
commit
f70a9e8fd3
55
build/tests/CustomSystemUpdater/work/pickup_tad.dev.sh
Executable file
55
build/tests/CustomSystemUpdater/work/pickup_tad.dev.sh
Executable file
@ -0,0 +1,55 @@
|
||||
#!/bin/sh
|
||||
#! bash -f
|
||||
|
||||
#---- commands
|
||||
LS='/bin/ls'
|
||||
ECHO='/bin/echo'
|
||||
HEAD='/bin/head'
|
||||
FIND='/bin/find'
|
||||
COPY='/bin/cp'
|
||||
DATE='/bin/date'
|
||||
XARGS='/bin/xargs'
|
||||
MKDIR='/bin/mkdir'
|
||||
CHDIR='cd'
|
||||
|
||||
#---- values
|
||||
aqua_server='//10.116.1.5'
|
||||
debug_dir="${aqua_server}/TWL_debug/sysmenu/rom/debug_rom"
|
||||
redroms="${debug_dir}/sd.roms.template*"
|
||||
clsbase="${debug_dir}/CLS_base"
|
||||
datedir=`${DATE} +%Y%m%d`
|
||||
regions='jp usa euro aus'
|
||||
|
||||
#---- call pickup_tad.pl
|
||||
${ECHO} "===== getting latest apps files ====="
|
||||
perl ./pickup_tad.pl
|
||||
|
||||
#---- gets the latest sd.roms.template roms
|
||||
#redrom_dir=`${LS} -d --full-time ${redroms} | sort -k 7,10 | tail -n 1`
|
||||
redrom_dir=`${LS} -dt ${redroms} | ${HEAD} -n 1`
|
||||
${ECHO} -e "===== getting sd.roms.template* rom files ====="
|
||||
${ECHO} -e "sd.roms.template dir : ${redrom_dir}"
|
||||
${ECHO} -e "copy *.(tad|dat|nand) file -> ${datedir} dir\n"
|
||||
${FIND} ${redrom_dir} -regextype posix-egrep -regex ".*.(tad|dat|nand)" | ${XARGS} ${COPY} -fut ${datedir} > /dev/null
|
||||
|
||||
#---- gets the cls base roms
|
||||
${ECHO} -e "===== getting sd.roms.template* rom files ====="
|
||||
${ECHO} -e "CLS_base dir : ${clsbase}"
|
||||
${ECHO} -e "copy *.tad file -> ${datedir} dir"
|
||||
${FIND} ${clsbase} -name "*.tad" | ${XARGS} ${COPY} -fut ${datedir} > /dev/null
|
||||
|
||||
#---- call mkcls.py
|
||||
${ECHO} -e "===== create forcls dirs ====="
|
||||
${MKDIR} ${datedir}_forcls
|
||||
${CHDIR} ${datedir}_forcls
|
||||
${FIND} ../${datedir} -name "*.tad" -exec ../mkcls.py {} \;
|
||||
|
||||
${ECHO} -e "===== copy *.nand *.dat files -> (jp|usa|euro|aus) dirs =====\n"
|
||||
for region in ${regions}
|
||||
do
|
||||
${MKDIR} ${region}
|
||||
${COPY} ../${datedir}/*.nand ${region}
|
||||
${COPY} ../${datedir}/*.dat ${region}
|
||||
done
|
||||
|
||||
${COPY} ../cls.sh ./
|
||||
146
build/tests/CustomSystemUpdater/work/pickup_tad.pl
Executable file
146
build/tests/CustomSystemUpdater/work/pickup_tad.pl
Executable file
@ -0,0 +1,146 @@
|
||||
#!/usr/bin/perl -w -I/usr/local/bin
|
||||
use File::Copy;
|
||||
use File::Copy::Recursive qw(fcopy rcopy dircopy);
|
||||
use Class::Struct;
|
||||
use POSIX 'strftime';
|
||||
use File::Find;
|
||||
|
||||
require "util.pl";
|
||||
|
||||
my @apps = ("download_play",
|
||||
"full_browser",
|
||||
"nintendo_spot",
|
||||
"photo",
|
||||
"pictchat",
|
||||
"shop",
|
||||
"sound",
|
||||
"sysmenu");
|
||||
|
||||
my $flgDate = 0;
|
||||
|
||||
my $i;
|
||||
my $date_dir = "";
|
||||
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
|
||||
my $str_today = sprintf("%04d%02d%02d", $year+1900, $mon+1, $mday);
|
||||
my $flghelp = 0;
|
||||
my $err;
|
||||
my @list_tad;
|
||||
|
||||
|
||||
for ($i = 0; $i < $#ARGV+1; $i++) {
|
||||
|
||||
my $opt = $ARGV[$i];
|
||||
|
||||
if ( $opt eq "-d" ) {
|
||||
$flgDate = 1;
|
||||
unless ( $#ARGV <= $i ) {
|
||||
#$date_dir = $aqua_dir."/SD_".$ARGV[$i+1];
|
||||
$str_today = $ARGV[$i+1];
|
||||
$err = [ 1, "Not date (\"$date_dir\") !!"] if ( $date_dir !~ /[0-9]{8}/ );
|
||||
$i++;
|
||||
|
||||
} else {
|
||||
$err = [1,"No argument after -d !!"];
|
||||
}
|
||||
} elsif ( $opt eq "-h" ) {
|
||||
&show_help;
|
||||
exit 0;
|
||||
} else {
|
||||
print "Unknown option: $opt\n";
|
||||
&show_help;
|
||||
exit 1;
|
||||
}
|
||||
do {
|
||||
print "*** Error *** : $err->[1]";
|
||||
exit 1;
|
||||
} if ( $err->[0] );
|
||||
}
|
||||
|
||||
# each application directory
|
||||
foreach $app ( @apps )
|
||||
{
|
||||
my $dir_date;
|
||||
#$dir_app = sprintf('//Aqua/TWL_debug/%s/rom/tad', $app);
|
||||
$dir_app = sprintf('//10.116.1.5/TWL_debug/%s/rom/tad', $app);
|
||||
$dir_app_date = &search_date_dir($dir_app);
|
||||
|
||||
print "* $dir_app\n - $dir_app_date\n\n";
|
||||
|
||||
find( sub
|
||||
{
|
||||
do {
|
||||
push @list_tad, $File::Find::name }if (/\.tad$/);
|
||||
}, $dir_app_date
|
||||
);
|
||||
#foreach ( @list_tad ) { print " * $_\n"; }
|
||||
}
|
||||
|
||||
#print "Date: $date_dir\n";
|
||||
|
||||
# Actually not today
|
||||
mkdir($str_today);
|
||||
|
||||
# copy to the local date directory
|
||||
foreach ( @list_tad ) {
|
||||
print("$_\n");
|
||||
copy($_, $str_today);
|
||||
}
|
||||
|
||||
#
|
||||
exit 0;
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# name : show_help
|
||||
# function :
|
||||
#-----------------------------------------------------------------------
|
||||
sub show_help
|
||||
{
|
||||
print <<__MSG_HELP__;
|
||||
Usage:
|
||||
\$ perl pickup_tad.pl [-d yyyymmdd]
|
||||
__MSG_HELP__
|
||||
}
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# name : search_date_dir
|
||||
# function :
|
||||
#-----------------------------------------------------------------------
|
||||
sub search_date_dir
|
||||
{
|
||||
my $root_dir;
|
||||
my $date_dir;
|
||||
my $prefix = ($#_<1) ? "" : $_[1];
|
||||
my $full_prefix;
|
||||
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
|
||||
|
||||
$year += 1900;
|
||||
$mon += 1;
|
||||
|
||||
$root_dir = ( $#_ < 0 ) ? "." : $_[0];
|
||||
|
||||
$full_prefix = $root_dir."/".$prefix;
|
||||
$date_dir = $full_prefix.sprintf("%04d%02d%02d", $year, $mon, $mday);
|
||||
|
||||
# search directory on going back date
|
||||
while ( $year >= 2000 ) {
|
||||
if ( -e "$date_dir" and -d "$date_dir") {
|
||||
return "$date_dir";
|
||||
} else {
|
||||
$mday -= 1;
|
||||
$date_dir = $full_prefix.sprintf("%04d%02d%02d", $year, $mon, $mday);
|
||||
}
|
||||
do {
|
||||
$mday = 31; # constant
|
||||
$mon -= 1;
|
||||
unless ( $mon ) {
|
||||
$mon = 12;
|
||||
$year -= 1;
|
||||
}
|
||||
} unless ( $mday ) ;
|
||||
}
|
||||
print "*** Error *** : Can't find the date directory !!\n";
|
||||
return 0;
|
||||
}
|
||||
|
||||
__END__
|
||||
|
||||
110
build/tests/CustomSystemUpdater/work/util.pl
Executable file
110
build/tests/CustomSystemUpdater/work/util.pl
Executable file
@ -0,0 +1,110 @@
|
||||
|
||||
package util;
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# name : get_title_version
|
||||
# function : get the title version from the specified tad file
|
||||
#-----------------------------------------------------------------------
|
||||
sub get_title_version {
|
||||
|
||||
my $titleVersion = 0 ;
|
||||
my $cmdPython = "/usr/bin/python.exe";
|
||||
my $scrpPython = "/usr/local/bin/mkcls.py";
|
||||
$tad = $_[0];
|
||||
|
||||
open(PY, "$cmdPython $scrpPython $tad | ") or die "$!";
|
||||
$titleVersion = $1 if ( <PY> =~ /([0-9]{1,})/) ;
|
||||
close(PY);
|
||||
|
||||
$titleVersion;
|
||||
}
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# name : get_nlist
|
||||
# function : get the list of the specified directory except "." and ".."
|
||||
#-----------------------------------------------------------------------
|
||||
sub get_nlist {
|
||||
my $dirname = ( $#_ < 0) ? "." : $_[0];
|
||||
my @list;
|
||||
|
||||
unless ( opendir(DIR, "$dirname") ) {
|
||||
print "Can't open directory: $dirname\n";
|
||||
return "";
|
||||
}
|
||||
|
||||
foreach $node ( readdir(DIR) ) {
|
||||
push(@list, $node) unless ( $node =~ /^\.{1,2}$/ );
|
||||
}
|
||||
closedir(DIR);
|
||||
|
||||
@list;
|
||||
}
|
||||
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# name : fecheck
|
||||
# function : check the specified file existence (Error if no file)
|
||||
#-----------------------------------------------------------------------
|
||||
sub fecheck {
|
||||
my $filename = $_[0];
|
||||
unless ( -e $filename ) {
|
||||
print <<ERROR_NO_FILE;
|
||||
[ # Error] No such file : $filename
|
||||
ERROR_NO_FILE
|
||||
return 0;
|
||||
}
|
||||
1;
|
||||
}
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# name : fwcheck
|
||||
# function : check the specified file existence (Warning if no file)
|
||||
#-----------------------------------------------------------------------
|
||||
sub fwcheck {
|
||||
my $filename = $_[0];
|
||||
unless ( -e $filename ) {
|
||||
print <<WARN_NO_FILE;
|
||||
[ = Warn ] No such file : $filename
|
||||
WARN_NO_FILE
|
||||
return 0;
|
||||
}
|
||||
1;
|
||||
}
|
||||
|
||||
sub get_filebody {
|
||||
my ($filename_body) = @_;
|
||||
$filename_body = $1 if ( $filename_body =~ /(.{1,})\.[^.]{1,}$/);
|
||||
$filename_body;
|
||||
}
|
||||
|
||||
sub get_fileext {
|
||||
my ($filename_ext) = @_;
|
||||
$filename_ext = $1 if ( $filename_ext =~ /.{1,}\.([^.]{1,})$/);
|
||||
$filename_ext;
|
||||
}
|
||||
|
||||
#-----------------------------------------------------------------------
|
||||
# name : cnv_str2hex
|
||||
# function : check the specified file existence (Warning if no file)
|
||||
#-----------------------------------------------------------------------
|
||||
sub cnv_str2hex {
|
||||
my $instr = $_[0];
|
||||
my $outstr = "" ;
|
||||
my $i;
|
||||
|
||||
my $len = ($#_<1) ? 1 : $_[1];
|
||||
|
||||
#print (substr($instr, 0, 1));
|
||||
#print (substr($instr, 1, 1));
|
||||
for ( $i=0; $i<$len; $i++) {
|
||||
$outstr .= chr ( (hex(substr($_[0], $i*2, 1))<<4)
|
||||
| (hex(substr($_[0], $i*2+1, 1)) ) );
|
||||
#print $outstr."\n";
|
||||
}
|
||||
return $outstr;
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
||||
__END__
|
||||
|
||||
Loading…
Reference in New Issue
Block a user