Permalink
Browse files

got extraction to work, added cleanup of temp folder, added option to…

… define if archive is from slacer or not
  • Loading branch information...
1 parent 961fa5f commit 89c640ba9d962b39b089aeb9b0d19cb32321fdc8 @rkoeppl rkoeppl committed May 7, 2016
Showing with 31 additions and 6 deletions.
  1. +1 −0 modules/printengine.cfg
  2. +30 −6 modules/printengine.pl
View
@@ -6,6 +6,7 @@
#this piece of software is provided with absolutely no warranty
#use at your own risk
log_file = "../log/printengine.log"
+temporary_folder="./temp"
logging_enabled="TRUE"
controllerboard="BBB"
steps_per_mm="100" #steps needed to move the Z-Axis 1mm
View
@@ -4,7 +4,6 @@
#http://www.fablab-leoben.at
#http://www.github.com/fablab-leoben
#released under the GPL v2
-#unzip code based on https://gist.github.com/eqhmcow/5389877
#this piece of software is provided with absolutely no warranty
#use at your own risk
#configuration is stored in printengine.cfg, do not use hardcoded configuration in ths perl script, that is bad practice.
@@ -19,14 +18,18 @@
use Sys::Mmap;
use Graphics::Framebuffer;
use Time::HiRes;
-use IO::Uncompress::AnyUncompress qw(anyuncompress $AnyUncompressError);
+use Archive::Zip;
use IO::File ;
+use File::Spec::Functions qw(splitpath);
+use File::Path qw(mkpath);
+use File::Path 'rmtree';
#import configuration from configuration file
our $cfg = new Config::Simple();
$cfg->read("printengine.cfg");
#asign config values from config file to values in script
my $log_file = $cfg->param("log_file");
+my $temporary_folder=$cfg->param("temporary_folder");
my $logging_enabled=$cfg->param("logging_enabled");
my $controllerboard=$cfg->param("controllerboard");
my $steps_per_mm=$cfg->param("steps_per_mm");
@@ -70,7 +73,10 @@
my $pin_vat_presence=$cfg->param("pin_vat_presence");
#asign additional variables
-#
+my $picturesarchive;
+my $archivesource;
+GetOptions("picturesarchive=s"=>\$picturesarchive, "archivesource=s"=>\$archivesource);#read pictures archive from command line option
+
#
#
#activate logging to logfile
@@ -84,6 +90,8 @@
#check if the parameters and pins needed for the features enabled are configured
unless (defined $steps_per_mm and length $steps_per_mm){
die "No steps per mm for Z Axis defined\n";}
+unless (defined $temporary_folder and length $temporary_folder){
+die "No temporary folder defined\n";}
unless (defined $controllerboard and length $controllerboard){
die "No controllerboard defined\n";}
unless (defined $projector_type and length $projector_type){
@@ -206,11 +214,27 @@
;
die "unknown display software in configuration!\n";
}
-#read filelist from testfolder
- my $dir = '/tmp/tst';
+#uncompresse archive to temporary folder
+unless (defined $temporary_folder and length $temporary_folder){
+die "No temporary folder defined\n";}
+rmtree([ "$temporary_folder"]) or die "$!: for directory $temporary_folder\n";
+unless (-d $temporary_folder) {
+ mkpath($temporary_folder) or die "Couldn't mkdir $temporary_folder: $!";}
+
- opendir(DIR, $dir) or die $!;
+my $zip = Archive::Zip->new($picturesarchive);
+$zip->extractTree('',$temporary_folder);
+
+
+#read filelist from testfolder
+ my $dir = $temporary_folder;
+ if ($archivesource eq "slacer") {
+ $dir = "$temporary_folder/slices";}
+ else {
+ $dir = $temporary_folder;
+ }
+ opendir(DIR, $dir) or die $!;
my @pics
= grep {
m/\.png$/ # png files only

0 comments on commit 89c640b

Please sign in to comment.