#!/usr/bin/perl

# URI Navigator Version 1.1 written by fuku@rouge.gr.jp
#
# URI の階層を元に HREF を生成します。
# <!--#exec cmd='./nav.pl'-->
# として SSI で実行してください。

use strict ;

my $request_uri = $ENV{REQUEST_URI} ;

my($dirs,$docname) ;
if ($request_uri =~ /\/$/)
	{
	# REQUEST_URI がディレクトリだった場合
	($dirs) = $request_uri ;
	chop $dirs ;
	$docname = "" ;
	}
else
	{
	# REQUEST_URI がファイルだった場合
	($dirs,$docname) = $request_uri =~ /^(.*)\/([^\/]+)$/ ;
	}

# 現在地点までのパスを分解する
$dirs = substr($dirs, 1) if $dirs =~ /^\// ;
my @dirs = split /\//, $dirs ;

# パスの先頭を "~who" から "TOP" へ変更する
$dirs[0] = 'TOP' ;

# リンク先の作成 (ディレクトリの分)
my $parents = "./" ;
foreach my $dir ( reverse @dirs )
	{
	$dir = "<a href=\"$parents\">$dir</a>" ;
	$parents = "../$parents" ;
	}
# .././ を ../ に整える
foreach my $dir ( @dirs )
	{
	$dir =~ s/\.\.\/\.\//..\//g ;
	}

# リンクを付加したパスを結合する
$dirs = join " > ", @dirs ;

# ナビゲータの表示 (ディレクトリの分)
print "$dirs" ;

# ナビゲータの表示 (ファイル名の分)
print " > <a href=\"./$docname\">$docname</a>" if $docname ne '' ;