#!/usr/local/bin/perl -w
# -*- perl -*-

#
# $Id: mksymlinks,v 1.3 2003/01/07 19:46:13 eserte Exp $
# Author: Slaven Rezic
#
# Copyright (C) 2001 Online Office Berlin. All rights reserved.
#
# Mail: slaven@rezic.de
# WWW:  http://bbbike.sourceforge.net
#

# Create a symlink farm from a http-accessable directory to the BBBike source

use File::Copy qw(cp);
use strict;
use FindBin;
use File::Spec;

(my $bbbike_src = $FindBin::RealBin) =~ s|/[^/]+/?$||;
my $config_name = shift;

symlink "$bbbike_src/html"  , "html"   or die $!;
symlink "$bbbike_src/images", "images" or die $!;
symlink "$bbbike_src/java"  , "java"   or die $!;
symlink "$bbbike_src"	    , "root"   or die $!;

mkdir "cgi", 0755;
if (!-d "cgi") {
    die "Can't create cgi directory: $!";
}

open(SH, ">cgi/bbbike.cgi") or die $!;
print SH <<EOF;
#!/bin/sh
$^X $bbbike_src/cgi/bbbike.cgi \$*
EOF
close SH;
chmod 0755, "cgi/bbbike.cgi";

if (defined $config_name) {
    if (!file_name_is_absolute($config_name)) {
	if ($config_name !~ /\.cgi.config$/) {
	    $config_name = "bbbike-$config_name.cgi.config";
	}
	$config_name = "$bbbike_src/cgi/$config_name";
    }
    if (!-f $config_name) {
	die "Can't find config $config_name";
    }
    cp("$config_name", "cgi/bbbike.cgi.config") or die $!;
    chmod 0644, "cgi/bbbike.cgi.config";
}

# REPO BEGIN
# REPO NAME file_name_is_absolute /home/e/eserte/src/repository 
# REPO MD5 a77759517bc00f13c52bb91d861d07d0

=head2 file_name_is_absolute($file)

=for category File

Return true, if supplied file name is absolute. This is only necessary
for older perls where File::Spec is not part of the system.

=cut

sub file_name_is_absolute {
    my $file = shift;
    my $r;
    eval {
        require File::Spec;
        $r = File::Spec->file_name_is_absolute($file);
    };
    if ($@) {
	if ($^O eq 'MSWin32') {
	    $r = ($file =~ m;^([a-z]:(/|\\)|\\\\|//);i);
	} else {
	    $r = ($file =~ m|^/|);
	}
    }
    $r;
}
# REPO END


__END__
