#!/usr/bin/perl use strict; use warnings; use Getopt::Long qw(GetOptions); use File::Path qw(mkpath); use Data::Dumper qw(Dumper); use Pod::Usage qw(pod2usage); use lib "lib"; use CGI::FileManager::Templates; my %opt; GetOptions(\%opt, "dir=s", "help", "force"); $opt{dir} ||= "."; if ($opt{help}) { pod2usage(2); exit; } if (-e $opt{dir}) { opendir my $dh, $opt{dir} or die "Could not look at directory '$opt{dir}' $!\n"; if (not $opt{force} and grep {$_ ne "." and $_ ne ".."} readdir $dh) { die "Cannot install in non-empty directory\n"; } } else { eval { mkpath($opt{dir}); }; if ($@) { die "Could not create directory: '$opt{dir}' $@"; } } foreach my $dir (qw(cgi data templates css templates/custom templates/factory)) { eval { mkpath(File::Spec->catfile($opt{dir}, $dir)); }; if ($@) { die "Could not create directory: '$dir' $@"; } } # put in cgi directory, in it the cgi script # next to it templates directory # next to it data directory foreach my $name (keys %CGI::FileManager::Templates::tmpl) { my $t_file = File::Spec->catfile($opt{dir}, "templates", "factory", $name); open my $fh, ">", $t_file or die "Could not open '$t_file' $!\n"; $CGI::FileManager::Templates::tmpl{$name} =~ s{CSS_STYLE_SHEET}{}; print $fh $CGI::FileManager::Templates::tmpl{$name}; } { my $css_file = File::Spec->catfile($opt{dir}, "css", "style.css"); open my $fh, ">", $css_file or die "Could not open '$css_file' $!\n"; print $fh $CGI::FileManager::Templates::css; } { my $cgi_file = File::Spec->catfile($opt{dir}, "cgi", "fm.pl"); open my $fh, ">", $cgi_file or die "Could not open '$cgi_file' $!\n"; print $fh $CGI::FileManager::Templates::cgi; chmod oct(755), $cgi_file; } #print <