#! /bin/bash
# Last edited on 2024-03-28 19:25:56 by stolfi

function checkdir() {
  dir="$1"; shift
  
  cd ${dir} || exit 1
  
  # All links:
  find ./ -type l -print \
    | sed -e 's:^[.][/]::g' \
    | egrep -v -e '[/]' \
    | egrep -v -e '^programs(|_big)$' \
    | sort \
    > .links
    
  ls -ld `cat .links` \
    | gawk '//{ print $(NF-2), $(NF-1), $(NF) }' \
    | sort \
    > .links-ls
  
  # Links to ~/programs/*
  cat .links-ls \
    | egrep -e '^(.*)[.](.+) -> ../programs(|_big)/.*/\1[.]\2$' \
    > .links-to-pr
    
  # Links to program packages that differ from command name:
  ../lib/check_bin_lib_program_links.gawk .links-to-pr \
    
  # Links to same name minus extension:
  cat .links-ls \
    | egrep -v -e '^(.*)[.](.+) -> ../programs(|_big)/.*/\1[.]\2$' \
    | egrep -e '^(.*) -> \1[.].*$' \
    > .links-no-ext
    
  # Links to different spelling (e.g. "-" instead of "_"):
  cat .links-ls \
    | egrep -v -e '^(.*)[.](.+) -> ../programs(|_big)/.*/\1[.]\2$' \
    | egrep -v -e '^(.*) -> \1[.].*$' \
    > .links-alt-spell
    
    
}

checkdir ~/bin

# checkdir lib
