#! /usr2/people/raines/prog/tk/tkmail4/mfv/mfv_wish
 
set mfp(tkmaillib) /usr2/people/raines/prog/tk/tkmail4/scripts
set mfp(bindlib) /usr2/people/raines/prog/tk/tkmail4/tkbind
set mfp(version) 4.0beta8
set mfp(dotlock) /usr/local/bin/dotlock

###########################################################################
# 
# 
#    TkMail -- A Tk/Tcl interface to Mail
# 	    		by Paul Raines (raines@slac.stanford.edu)
# 
###########################################################################
#  -*- Mode: tcl-mode -*- 


wm withdraw .

set usage {
USAGE: tkmail [options] [folder]

Options are from among:
   -debug		Run program in debug mode.
   -nodebug		Run program in regular mode.
   -global FILE		Use FILE for global settings file.
   -iconic		Startup program in iconic mode.
   -library DIRECTORY	Use DIRECTORY as location of tkmail library files.
   -personal FILE	Use FILE for user settings file

If you do not specify a folder, your system inbox will be used.
}

set mfp(debug) 1
set mfp(starticonic) 0
set mfp(globalset) $mfp(tkmaillib)/settings
set mfp(firstfile) {}

set cnt 0
while {$cnt < [llength $argv]} {
  set opt [lindex $argv $cnt]
  switch -regexp -- $opt {
    {^--$} break
    {^(-d|-debug)$} { set mfp(debug) 1 }
    {^(-n|-nodebug)$} { set mfp(debug) 0 }
    {^(-i|-iconic)$} { set mfp(starticonic) 1 }
    {^(-l|-library)$} {
      incr cnt
      set opt [lindex $argv $cnt]
      if {[file isdirectory $opt]} {
	set mfp(tkmaillib) $opt
      } else {
	puts stderr "ERROR: Library directory $opt not found."
	exit 1
      }
    }
    {^(-g|-global)$} {
      incr cnt
      set opt [lindex $argv $cnt]
      if {[file exists $opt]} {
	set mfp(globalset) $opt
      } else {
	puts stderr "ERROR: Global settings file $opt not found."
	exit 1
      }
    }
    {^(-p|-personal)$} {
      incr cnt
      set opt [lindex $argv $cnt]
      if {[file exists $opt]} {
	set mfp(setfile) $opt
      } else {
	puts stderr "ERROR: Personal settings file $opt not found."
	exit 1
      }
    }
    {^-\?$} { 
      puts $usage
      exit
    }
    {^tkmail$} { }
    default { 
      if {[file exists $opt]} { 
	lappend mfp(firstfile) [mfv_util fullpath $opt]
      } else {
        puts stderr "ERROR: Mail folder $opt not found."
	exit 1
      }
    }
  }
  incr cnt 
}
unset cnt
unset usage
catch {unset opt}

# load packages we definitely need and auto_load rest
if {![file exists $mfp(tkmaillib)/viewer.tcl]} {
  puts stderr "ERROR: Can't find tkmail libraries in $mfp(tkmaillib)"
  exit 1
}

if {![auto_execok $mfp(dotlock)]} {
  puts stderr "ERROR: Can't find the dotlock program to execute. Please check"
  puts stderr "       that dotlock is in your path."
  exit 1
}

source $mfp(tkmaillib)/viewer.tcl
source $mfp(tkmaillib)/fancylb.tk
source $mfp(tkmaillib)/file.tcl

# autoload other libraries
if {[info exists auto_path]} {
  lappend auto_path $mfp(tkmaillib)
} else {
  set auto_path [list $tk_library $mfp(tkmaillib)]
}

# read in defaults settings
mfv:default-set

# read in global settings
if [file readable $mfp(globalset)] {
  source $mfp(globalset)
}

# read in users settings
if ![info exists mfp(setfile)] {
  foreach mfp(setfile) {tk/.tkmail4rc .tk/tkmail4rc .tk/.tkmail4rc .tkmail4rc} {
    if [file readable $env(HOME)/$mfp(setfile)] break
  }
  set mfp(setfile) $env(HOME)/$mfp(setfile)
}
if [file readable $mfp(setfile)] {
  source $mfp(setfile)
}


if {$mfp(debug)} {
  set mf(mail-debug) 1
  wm title . "TkMail v$mfp(version) Debug"

  label .cur -textvariable mfp(curtop) -relief raised
  entry .field -relief sunken
  bind .field <KeyPress-Return> {eval [.field get]; .field delete 0 end}

  frame .debug
  scrollbar .debug.scr -command ".debug.txt yview" -relief raised
  text .debug.txt -cursor left_ptr -relief sunken -wrap word \
      -yscroll ".debug.scr set" -width 45 -height 8
  pack .debug.scr -side left -fill y
  pack .debug.txt -side left -expand true -fill both

  frame .bb
  button .bb.b1 -text Eval -command {eval [.field get]}
  button .bb.b2 -text What? -command {.debug.txt insert end \n$errorInfo\n}
  button .bb.b3 -text Init -command {mfv:tkmail-init}
  button .bb.b4 -text Kill -command {exit}
  pack .bb.b1 .bb.b2 .bb.b3 .bb.b4 -side left -expand true -fill x

  pack append  .
  pack .cur -side top -expand true -fill x
  pack .field -side top -pady 10 -expand true -fill x
  pack .debug -side top -expand true -fill both
  pack .bb -side top -expand true -fill x

  wm geometry . +50+50
  wm deiconify .
  update idletasks

  proc pdebug { str } {
    global mfp
    if {$mfp(debug)} {
      .debug.txt insert end  "$str"
      .debug.txt yview -pickplace end
    }
    update idletasks
  }

} else {
  proc pdebug { str } { # }
  mfv:tkmail-init
  rename mfv:tkmail-init {}
}

# Local Variables: ***
# mode:tcl ***
# End: ***
