#!/usr/bin/perl use warnings; use strict; use File::Find; use File::Spec; my $debian_dir = $ARGV[0]; find(\&symlink_if_file,$debian_dir); sub symlink_if_file { return if -l $_; return unless -f $_; my ($leading,$dir,$file_name) = $File::Find::name =~ m{(.+/usr/share/info/lilypond/)(.*?)([^/]+)$}; my $n_slashes = $dir =~ m{/}g; my $html_file = File::Spec->catfile(('..') x ($n_slashes+2), qw(doc lilypond html Documentation), $dir, $file_name ); my $info_file = File::Spec->catfile(('..') x ($n_slashes+4), qw(info lilypond), $dir, $file_name); if (-f $html_file) { system('ln','-sf',$info_file,$html_file); print STDERR "linking $html_file -> $info_file\n"; } else { print STDERR "html file $html_file doesn't exist\n"; } }