File Annotation
Not logged in
2b9c6df430 2008-02-19  mjanssen: ## -*- tcl -*-
2b9c6df430 2008-02-19  mjanssen: # # ## ### ##### ######## ############# #####################
2b9c6df430 2008-02-19  mjanssen: ## Copyright (c) 2008 Mark Janssen.
2b9c6df430 2008-02-19  mjanssen: #
2b9c6df430 2008-02-19  mjanssen: # This software is licensed as described in the file LICENSE, which
2b9c6df430 2008-02-19  mjanssen: # you should have received as part of this distribution.
2b9c6df430 2008-02-19  mjanssen: #
2b9c6df430 2008-02-19  mjanssen: # This software consists of voluntary contributions made by many
2b9c6df430 2008-02-19  mjanssen: # individuals.  For exact contribution history, see the revision
2b9c6df430 2008-02-19  mjanssen: # history and logs, available at http://fossil-scm.hwaci.com/fossil
2b9c6df430 2008-02-19  mjanssen: # # ## ### ##### ######## ############# #####################
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: ## Command line user interface for tclfossil.
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: # # ## ### ##### ######## ############# #####################
2b9c6df430 2008-02-19  mjanssen: ## Requirements
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: package require Tcl 8.5                             ; # Required runtime.
2b9c6df430 2008-02-19  mjanssen: package require snit                                ; # OO system.
2b9c6df430 2008-02-19  mjanssen: package require vc::fossil::cmd::clone 1.0          ; # Clone command
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: package provide vc::fossil::ui 1.0
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: # # ## ### ##### ######## ############# #####################
2b9c6df430 2008-02-19  mjanssen: ##
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: namespace eval ::vc::fossil {
2b9c6df430 2008-02-19  mjanssen:     snit::type ui {
2b9c6df430 2008-02-19  mjanssen: 	typevariable argv
2b9c6df430 2008-02-19  mjanssen: 	typevariable argc
2b9c6df430 2008-02-19  mjanssen: 	typevariable command
2b9c6df430 2008-02-19  mjanssen: 	typevariable fSqlTrace
2b9c6df430 2008-02-19  mjanssen: 	typevariable fUser
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 	typemethod run {args} {
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 	    # TODO parse options
2b9c6df430 2008-02-19  mjanssen: 	    set argv $args
2b9c6df430 2008-02-19  mjanssen: 	    set argc [llength $args]
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 	    if {$argc < 2} {
2b9c6df430 2008-02-19  mjanssen: 		ui usage "COMMAND ..."
2b9c6df430 2008-02-19  mjanssen: 	    }
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 	    # TODO better command searching so prefixes work
2b9c6df430 2008-02-19  mjanssen: 	    set command [lindex $argv 1]
2b9c6df430 2008-02-19  mjanssen: 	    set commands [vc::fossil::cmd list]
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 	    if {[lsearch $commands $command] < 0} {
2b9c6df430 2008-02-19  mjanssen: 		puts "unknown command: $command"
2b9c6df430 2008-02-19  mjanssen: 		puts {use "help" for more information}
2b9c6df430 2008-02-19  mjanssen: 		exit 1
2b9c6df430 2008-02-19  mjanssen: 	    }
2b9c6df430 2008-02-19  mjanssen: 	    vc::fossil::cmd::$command {*}[lrange $argv 1 end]
2b9c6df430 2008-02-19  mjanssen: 	    return
2b9c6df430 2008-02-19  mjanssen: 	}
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 	typemethod usage {str} {
2b9c6df430 2008-02-19  mjanssen: 	    puts stderr "Usage: [lrange $argv 0 1] $str"
2b9c6df430 2008-02-19  mjanssen: 	    exit 1
2b9c6df430 2008-02-19  mjanssen: 	}
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 	typemethod panic {str} {
2b9c6df430 2008-02-19  mjanssen: 	    puts stderr "[lindex $argv 0]: $str"
2b9c6df430 2008-02-19  mjanssen: 	    exit 1
2b9c6df430 2008-02-19  mjanssen: 	}
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 	typemethod argc {} {
2b9c6df430 2008-02-19  mjanssen: 	    return $argc
2b9c6df430 2008-02-19  mjanssen: 	}
2b9c6df430 2008-02-19  mjanssen: 
2b9c6df430 2008-02-19  mjanssen: 	typemethod argv {} {
2b9c6df430 2008-02-19  mjanssen: 	    return $argv
2b9c6df430 2008-02-19  mjanssen: 	}
2b9c6df430 2008-02-19  mjanssen:     }
2b9c6df430 2008-02-19  mjanssen: }