#!/usr/bin/perl use strict; my $conf_file="/root/gallery.conf"; my $version="1.4 Rewritten"; my $count=0; my $pics_root="/www/darksniper.net"; my $overwrite; system("clear"); version(); file_tests(); sub main { (my $current_image_set)=@_; print "We currently are at set [${current_image_set}]\n"; print "Is this correct?\n"; chomp(my $confirmation=); $_=$confirmation; print "\aEnter 'y' for yes and 'n' for no!\n" and chomp($_=) until /[yn]/; $confirmation=$_; create_conf_file() if $confirmation eq "n"; my $creating_set=$current_image_set+1; check_dupes($creating_set); print "OK,now some questions about the NEXT set..[$creating_set]\n"; print "How many images do you have in the set [$creating_set]?\n"; chomp(my $number_of_images=); $_=$number_of_images; # fix this print "\aNumbers only!\n" and chomp($_=) until /\d+/; # and this print "\aMax 15 images per set!\n" and chomp($_=) until $_ <= 15; $number_of_images=$_; # and this with tilde print "\n-Doing initial work-\n"; print "Creating dir..."; create_dirs($creating_set,$overwrite); print "DONE!\n"; print "Creating ${creating_set}.html..."; create_html($creating_set,$number_of_images); print "DONE!\n"; print "Creating pics files..."; create_pics_files($creating_set,$number_of_images); print "DONE!\n"; print "Updating menus..."; update_menus($current_image_set); print "DONE!\n"; print "Changing axx rights..."; change_rights(); print "DONE!\n"; print "Updating conf file..."; update_conf($creating_set); print "DONE!\n"; print "-Initial work OK-\n"; sleep 1; print "Image set $creating_set...CREATED!!!\n"; print "You may now upload the jpegs!\n"; exit; } sub create_dirs { (my $creating_set,$overwrite)=@_; rmdir "$pics_root/pics/${creating_set}/" if $overwrite eq "yes"; unlink <$pics_root/pics/${creating_set}.html> if $overwrite eq "yes"; mkdir "$pics_root/pics/${creating_set}",0775; } sub check_dupes { (my $creating_set)=@_; my $found; my $confirmation; print "\nChecking for dupes..."; if (-e "$pics_root/pics/$creating_set.html" or -e "$pics_root/pics/$creating_set") { $found="true"; print "FAILED!\n"; print "[$creating_set] already exists!\n"; print "Do you want to overwrite?\n"; chomp($confirmation=); print "\aEnter 'y' for yes and 'n' for no!\n" and chomp($_=) until /[yn]$/; $confirmation=$_; create_conf_file() if $confirmation eq "n"; $overwrite="yes" if $confirmation eq "y"; } else { $found="false"; print "OK!\n"; $overwrite="no"; } return $overwrite; } sub update_menus { (my $current_image_set)=@_; my $set_before_current=$current_image_set - 1; open INDEX,"<$pics_root/pics/index.html" or die "FAILED!\n$!"; open TEMP,">/tmp/temp.index_2" or print "Cannot open temp file!\n$!"; while () { print TEMP $_; if (/$set_before_current<\/a>/) { print TEMP qq!!; print TEMP qq!$current_image_set\n!; } } close TEMP; close INDEX; rename "$pics_root/pics/index.html","/tmp/delete.me.plz" or die "Cannot rename index.html! \n"; rename "/tmp/temp.index_2" , "$pics_root/pics/index.html" or die "Cannot rename temp.index _2 $!"; unlink or die "Can't unlink! $!"; for (2..$current_image_set) { if ($_ < $current_image_set) { open MENU,"<$pics_root/pics/s${_}.html" or print "$!"; open TMP,">/tmp/s${_}.html" or print "$!"; while () { print TMP $_; if (/$set_before_current<\/a>/) { print TMP qq!$current_image_set\n!; } elsif (/$set_before_current<\/font><\/a>/) { print TMP qq!$current_image_set\n!; } close TMP; close MENU; rename "$pics_root/pics/s${_}.html","/tmp/buhaha${_}"; rename "/tmp/s${_}.html","$pics_root/pics/s${_}.html"; unlink ; } } } } sub update_conf { (my $creating_set)=@_; my @conf; open CONF,">$conf_file" or create_conf_file(); @conf=; close CONF; unshift @conf, "Image set=$creating_set\n"; open CONF,">$conf_file" or create_conf_file(); print CONF @conf; close CONF; return; } sub change_rights { chmod 0755,"$pics_root/pics" or print "FAILED!\n" and exit; return; } sub update_menus { (my $current_set, my $creating_set)=@_; open INDEX,"<$pics_root/pics/index.html" or die "index: $!"; open TEMP,">/tmp/tmp_index" or die "tmp_index: $!"; while () { print TEMP $_; if (/$current_set<\/a>/) { print TEMP qq#; } sub create_pics_files { $|=1; (my $creating_set,my $number_of_images)=@_; for (1..$number_of_images) { open IMAGE_FILE,">${pics_root}/pics/${creating_set}/s${creating_set}b${_}.html" or print " FAILED!\n\n" and die "$!"; select IMAGE_FILE; print qq#Set $creating_set Pic $_#; print qq#\n#; print qq#\n\n#; close IMAGE_FILE; select STDOUT; print "."; } $|=0; } sub create_html { (my $creating_set,my $number_of_images)=@_; open SET_HTML,">$pics_root/pics/${creating_set}.html" or print "FAILED!\n\n\n" and die "$! "; select SET_HTML; print qq#Set ${creating_set}\n#; print qq#\n#; print qq#\n#; print qq#
\n#; print qq#\n#; print qq#Gallery:\n#; print qq#1\n#; for (2..$creating_set) { if ($_ == $creating_set) { print qq##; print qq#$creating_set#; print qq#\n#; } else { print qq#$_\n#; } } print qq#\n\n#; for (1..$number_of_images) { print qq#\n#; $count++; if ($count == 3) { print qq#\n#; $count=0; } } print qq#\n
#; print qq#
\n
\n\n#; close SET_HTML; select STDOUT; } sub create_conf_file { my @conf; print "What image set are you CURRENTLY on?\n"; chomp(my $image_set=); $_=$image_set; # fix this print "\aNumbers only!\n" and chomp($_=) until /\d+/; # and this $image_set=$_; # and this print "You inputed number $_\n"; # with tilde print "Is this correct?\n"; chomp(my $confirmation=); $_=$confirmation; print "\aEnter 'y' for yes and 'n' for no!\n" and chomp($_=) until /[yn]/; $confirmation=$_; create_conf_file() if $confirmation eq "n"; open CONF,">$conf_file" or die "Cant open $conf_file: $!"; print "You're currently at set $image_set\n"; print CONF "Image set=",$image_set,""; close CONF; my $current_image_set=$image_set; main($current_image_set) if $confirmation eq "y"; } sub check_conf_file { if (-e $conf_file) { print "EXISTS\n"; open CONF,"<$conf_file" or create_conf_file(); print "-File tests OK-\n\n"; my $conf=; close CONF; my @temp_array=split /=/,$conf; my $current_image_set=$temp_array[1]; main($current_image_set); } else { print "NOPE!\nBuilding one...\n"; create_conf_file(); } } sub file_tests { print "\n-Doing initial file tests-\n"; print "Check if the webdirectory exists..."; if (-e "$pics_root") { print "EXISTS\n"; } else { print "NOPE\n"; die "Are you sure this is matrox?\n"; } print "Check if index.html exists..."; if (-e "$pics_root/pics/index.html") { print "EXISTS\n"; } else { print "NOPE\n"; die "Are you sure this is matrox?\n"; } print "Check if conf file exists..."; check_conf_file(); } sub version { print qq!\t ############################################\n!; print qq!\t # Gallery Maintainer $version - by DarkSniper #\n!; print qq!\t ############################################\n!; }