Rework update-vs-apps script a bit
diff --git a/scripts/update_vs_apps.pl b/scripts/update_vs_apps.pl
index a5f6c8f..3607c80 100755
--- a/scripts/update_vs_apps.pl
+++ b/scripts/update_vs_apps.pl
@@ -2,20 +2,31 @@
# create individual project files for example programs
# for VS6 and VS2010
+#
+# Must be run from PolarSSL root or scripts directory.
+# Takes no argument.
use warnings;
use strict;
-my $vs6_dir = "../visualc/VS6";
+my $vs6_dir = "visualc/VS6";
my $vs6_ext = "dsp";
-my $vs6_template_file = "data_files/vs6-app-template.$vs6_ext";
+my $vs6_app_tpl_file = "scripts/data_files/vs6-app-template.$vs6_ext";
-my $vsx_dir = "../visualc/VS2010";
+my $vsx_dir = "visualc/VS2010";
my $vsx_ext = "vcxproj";
-my $vsx_template_file = "data_files/vs2010-app-template.$vsx_ext";
+my $vsx_app_tpl_file = "scripts/data_files/vs2010-app-template.$vsx_ext";
+
+my $programs_dir = 'programs';
exit( main() );
+sub check_dirs {
+ return -d $vs6_dir
+ && -d $vsx_dir
+ && -d $programs_dir;
+}
+
sub slurp_file {
my ($filename) = @_;
@@ -43,24 +54,31 @@
}
sub get_app_list {
- my $app_list = `cd ../programs && make list`;
+ my $app_list = `cd $programs_dir && make list`;
die "make list failed: $!\n" if $?;
return split /\s+/, $app_list;
}
-sub main {
- -d $vs6_dir || die "VS6 directory not found: $vs6_dir\n";
- -d $vsx_dir || die "VS2010 directory not found: $vsx_dir\n";
-
- my $vs6_tpl = slurp_file( $vs6_template_file );
- my $vsx_tpl = slurp_file( $vsx_template_file );
+sub gen_app_files {
+ my $vs6_tpl = slurp_file( $vs6_app_tpl_file );
+ my $vsx_tpl = slurp_file( $vsx_app_tpl_file );
for my $app ( get_app_list() ) {
- printf "$app\n";
gen_app( $app, $vs6_tpl, $vs6_dir, $vs6_ext );
gen_app( $app, $vsx_tpl, $vsx_dir, $vsx_ext );
}
+}
+
+sub main {
+ if( ! check_dirs() ) {
+ chdir '..' or die;
+ check_dirs or die "Must but run from PolarSSL root or scripts dir\n";
+ }
+
+ print "Generating apps files: ";
+ gen_app_files();
+ print "done.\n";
return 0;
}