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: }