Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
################################################################
#
#	File:	  debreputil
#
#	Subject:  utilities to manage a repository of .debs
#
#	Author:	  Edrx
#
#	Date:	  2000jul03
#
################################################################
#
#
#
# Libbables:
#
################################################################

$include "zinc.icn"
$include "~/ICON/debrepository.icn"

# (find-fline "~/ICON/debrepository.icn")
# (find-fline "/hda2/98jul22home/root/ICON/")
# (find-es "apt" "missing_upstream_debs2")


procedure idebs_notin_upstream(args[])
  read_installed_debs(args[1])
  read_upstream_debs(args[2])
  every write(!(sort(ideb_basenameS -- udeb_basenameS)))
end

procedure idebs_as_upstream(args[])
  read_installed_debs(args[1])
  read_upstream_debs(args[2])
  every debname := !(sort(ideb_basenameS ** udeb_basenameS)) do
    write(udeb_basename2li[debname])
end

procedure upstream_fdebs_as_cpsrms(args[])
  read_upstream_debs(args[1])
  udeb_basename2localcopy := table()
  every li := tsv_lines(args[2]) do
    if member(udeb_basenameS, tsv_head) then
      if addtotable(udeb_basename2localcopy, tsv_head, tsv_tail) == "first"
      then {
	dest := udeb_basename2fname[tsv_head]
	write("# Upstream: ", dest)
	write("[[ ! -e ", dest, " ]] && ", "\\\n",
	      "cp ", tsv_tail, " \\\n   ", dest)
      } else
	write(cpsrmsF, "rm -v ", tsv_tail)
    else
      write("# Not in upstream: ", tsv_tail)
end

procedure upstream_fdebs_as_mvsrms(args[])
  read_upstream_debs(args[1])
  udeb_basename2localcopy := table()
  # write("unalias mv_or_rm")
  write("function mv_or_rm () {\n" ||
	"  if [[ -e $2 ]]; then\n" ||
	"    if [[ $1 -ef $2 ]]; then\n" ||
	"      echo '# same as dest:' $1\n" ||
	"      else echo rm $1; rm $1\n" ||
	"    fi\n" ||
	"  else echo mv $1 $2; mv $1 $2\n" ||
	"  fi\n" ||
	"}")
  # w(udeb_basename2fname)
  every li := tsv_lines(args[2]) do
    if member(udeb_basenameS, tsv_head) then {
      dest := udeb_basename2fname[tsv_head]
      write("mv_or_rm ", tsv_tail, " ", dest)
    } else {
      write("# Not in upstream: ", tsv_tail)
    }
end

procedure main(args)
  case args[1] of {

    "-idebs_notin_upstream" :
      idebs_notin_upstream(args[2], args[3])

    "-idebs_as_upstream" :
      idebs_as_upstream(args[2], args[3])

    "-notin_upstream_fdebs" :
      notin_upstream_fdebs(args[2], args[3])

    "-upstream_fdebs_as_cpsrms" :
      upstream_fdebs_as_cpsrms(args[2], args[3])

    "-upstream_fdebs_as_mvsrms" :
      upstream_fdebs_as_mvsrms(args[2], args[3])

    default :
      write("Bad command.  See ~/ICON/debreputil.icn")

  }
end


# -idebs_as_upstream
# -idebs_notin_upstream
# -notin_upstream_fdebs
# -upstream_notin_fdebs
# -debs_notin_fdebs
# -upstream_fdebs_cpsrms

# (find-es "emacs" "compile-command")
# (compile "cd ~/ICON/; icont debreputil.icn")
#
# Local variables:
# compile-command: "cd ~/ICON/; icont debreputil.icn"
# End: