#!/usr/bin/perl -w use strict; exit unless $ARGV[0]; my $base='/home/twiki/MAIN'; my $dir='/home/twiki/'.$ARGV[0]; my $bindir=$dir.'/bin'; md($dir); md($bindir); alllink($base.'/bin',$bindir); md("$dir/data"); llink($base.'/data',$dir.'/data','TWiki'); llink($base.'/data',$dir.'/data','_default'); llink($base.'/data',$dir.'/data','_empty'); llink($base.'/data',$dir.'/data','mime.types'); md("$dir/lib"); alllink($base.'/lib',$dir.'/lib'); md("$dir/pub"); llink($base.'/pub',$dir.'/pub','TWiki'); llink($base.'/pub',$dir.'/pub','_default'); llink($base.'/pub',$dir.'/pub','_work_areas'); md("$dir/templates"); alllink($base.'/templates',$dir.'/templates'); md("$dir/logs"); llink($base,$dir,'locale'); system("cp $base/data/Trash $dir/data -R"); system("cp $base/data/Sandbox $dir/data -R"); system("cp $base/data/Main $dir/data -R"); system("cp $base/pub/Trash $dir/data -R"); system("cp $base/pub/Sandbox $dir/data -R"); system("cp $base/pub/Main $dir/data -R"); #copy data/Trash data/Sandbox pub/Trash pub/Sandbox sub alllink { my ($base,$dir)=@_; if (opendir( DIR, $base )) { foreach my $file ( readdir DIR ) { next if ($file =~ /^\..*/); llink($base,$dir,$file); } } } sub llink { my ($from,$to,$file)=@_; my $cmd="ln -s $from/$file $to/$file 2>&1"; system($cmd); } sub md { my $dir=shift; mkdir $dir unless (-d $dir); }