<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/index.php?title=Script_TCL_-_Aggiornamento_IP_servizio_cjb.net&amp;feed=atom&amp;action=history</id>
		<title>Script TCL - Aggiornamento IP servizio cjb.net - Cronologia</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/index.php?title=Script_TCL_-_Aggiornamento_IP_servizio_cjb.net&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Script_TCL_-_Aggiornamento_IP_servizio_cjb.net&amp;action=history"/>
		<updated>2013-05-23T02:05:33Z</updated>
		<subtitle>Cronologia della pagina su questo sito</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Script_TCL_-_Aggiornamento_IP_servizio_cjb.net&amp;diff=2467&amp;oldid=prev</id>
		<title>L1q1d il 10:08, 12 set 2006</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Script_TCL_-_Aggiornamento_IP_servizio_cjb.net&amp;diff=2467&amp;oldid=prev"/>
				<updated>2006-09-12T10:08:45Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Versione meno recente&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Versione delle 10:08, 12 set 2006&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 4:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 4:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Script =&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;= Script =&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#!/usr/bin/tclsh&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# CJB.tcl&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# CJB.tcl&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 318:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 319:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Data:    	03 Jun 2006&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Data:    	03 Jun 2006&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Autore:    	Useless&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt; &lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Autore:    	Useless&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Versione:    	&lt;span class=&quot;diffchange diffchange-inline&quot;&gt;0.5#!/usr/bin/tclsh&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Versione:    	&lt;span class=&quot;diffchange diffchange-inline&quot;&gt;0.5&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;

&lt;!-- diff cache key wiki:diff:version:1.11a:oldid:2450:newid:2467 --&gt;
&lt;/table&gt;</summary>
		<author><name>L1q1d</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Script_TCL_-_Aggiornamento_IP_servizio_cjb.net&amp;diff=2450&amp;oldid=prev</id>
		<title>L1q1d il 09:49, 12 set 2006</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Script_TCL_-_Aggiornamento_IP_servizio_cjb.net&amp;diff=2450&amp;oldid=prev"/>
				<updated>2006-09-12T09:49:02Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Script]]&lt;br /&gt;
= Descrizione =&lt;br /&gt;
Script TCL che permette di aggiornare il proprio IP da linea di comando per il servizio di dns dinamico di cjb.net. è possibile specificare se deve utilizzare l'ip di una determinata interfaccia di rete o se deve trovarlo da solo (usando whatismyip.com). Ovviamente richiede il pacchetto tcl.&lt;br /&gt;
= Script =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# CJB.tcl&lt;br /&gt;
#&lt;br /&gt;
# CJB.net IP updater by SukkoPera &amp;lt;enjoy.the.silence@iol.it&amp;gt;&lt;br /&gt;
# Version 0.5 (22/05/2005)&lt;br /&gt;
#&lt;br /&gt;
# Released under the GPL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### GENERAL SETTINGS ###&lt;br /&gt;
&lt;br /&gt;
# CJB.net user data&lt;br /&gt;
set username &amp;quot;&amp;quot;&lt;br /&gt;
set password &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Path to ifconfig&lt;br /&gt;
set ifconfig &amp;quot;/sbin/ifconfig&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Interface bearing the IP to set at CJB.net, if set to &amp;quot;&amp;quot; the program&lt;br /&gt;
# will try to automatically fetch the IP from www.whatismyip.com&lt;br /&gt;
set device &amp;quot;ppp0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### DAEMON MODE SETTINGS ###&lt;br /&gt;
&lt;br /&gt;
# Seconds to wait between consequent IP updates&lt;br /&gt;
set sleeptime 60&lt;br /&gt;
&lt;br /&gt;
# File where to log, must have write access. Set to &amp;quot;&amp;quot; to turn off logging&lt;br /&gt;
set logfile &amp;quot;/var/log/cjb.log&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### DO NOT MODIFY THE FOLLOWING VALUES ###&lt;br /&gt;
&lt;br /&gt;
set server &amp;quot;www.cjb.net&amp;quot;&lt;br /&gt;
set port &amp;quot;80&amp;quot;&lt;br /&gt;
set uri &amp;quot;http://www.cjb.net/cgi-bin/dynip.cgi&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set daemon 0&lt;br /&gt;
set lastip 0&lt;br /&gt;
set pretend 0&lt;br /&gt;
&lt;br /&gt;
set version &amp;quot;0.5 (22/05/2005)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
###########################################################################&lt;br /&gt;
&lt;br /&gt;
proc help {} {&lt;br /&gt;
	global username password ifconfig device sleeptime logfile&lt;br /&gt;
&lt;br /&gt;
	puts \&lt;br /&gt;
&amp;quot;Available options:&lt;br /&gt;
&lt;br /&gt;
-d	Daemon mode (Please launch as \&amp;quot;[info script] -d &amp;amp;\&amp;quot;)&lt;br /&gt;
-p	Do not set IP at CJB.net, only show the detected IP&lt;br /&gt;
&lt;br /&gt;
Configurable parameters:&lt;br /&gt;
- Username...........: $username&lt;br /&gt;
- Password...........: $password&lt;br /&gt;
- Path to ifconfig...: $ifconfig&lt;br /&gt;
- Network interface..: [expr {$device != &amp;quot;&amp;quot; ? $device : &amp;quot;None, will use whatismyip.com&amp;quot;}]&lt;br /&gt;
- Sleep time.........: $sleeptime seconds&lt;br /&gt;
- Log file...........: $logfile&lt;br /&gt;
&lt;br /&gt;
You can change them editing the beginning of the script&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	return&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proc daemonize {} {&lt;br /&gt;
	global daemon&lt;br /&gt;
&lt;br /&gt;
	puts &amp;quot;Running in daemon mode: closing standard input and output&amp;quot;&lt;br /&gt;
#	close stdin&lt;br /&gt;
#	close stdout&lt;br /&gt;
#	close stderr&lt;br /&gt;
&lt;br /&gt;
	set daemon 1&lt;br /&gt;
	msg &amp;quot;Running in daemon mode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	return&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proc msg {what} {&lt;br /&gt;
	global daemon logfile&lt;br /&gt;
&lt;br /&gt;
	set timestamp [clock format [clock seconds]]&lt;br /&gt;
	set what &amp;quot;\[$timestamp\] $what&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	if {$daemon} {&lt;br /&gt;
		if {$logfile != &amp;quot;&amp;quot;} {&lt;br /&gt;
			set fd [open $logfile &amp;quot;a&amp;quot;]&lt;br /&gt;
			puts $fd $what&lt;br /&gt;
			close $fd&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		puts $what&lt;br /&gt;
		flush stdout&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return&lt;br /&gt;
}&lt;br /&gt;
		&lt;br /&gt;
&lt;br /&gt;
proc get_ip_ifconfig {device} {&lt;br /&gt;
	global ifconfig&lt;br /&gt;
&lt;br /&gt;
	msg &amp;quot;Determining IP of interface $device&amp;quot;&lt;br /&gt;
	#return [exec $ifconfig $device | grep &amp;quot;inet addr&amp;quot; | awk &amp;quot;\{print \$2\}&amp;quot; | cut -b 6-]&lt;br /&gt;
	set fp [open &amp;quot;|$ifconfig $device&amp;quot; &amp;quot;r&amp;quot;]&lt;br /&gt;
	set out [read $fp]&lt;br /&gt;
	if {![catch {close $fp}]} {&lt;br /&gt;
		foreach line [split $out &amp;quot;\n&amp;quot;] {&lt;br /&gt;
			if {[regsub -all &amp;quot; +inet addr:(\[0-9\]+)\\\.(\[0-9\]+)\\\.(\[0-9\]+)\\\.(\[0-9\]+) .*&amp;quot; $line {\1.\2.\3.\4} ip]} {&lt;br /&gt;
				break&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	} else {&lt;br /&gt;
		msg &amp;quot;Could not determine IP of interface $device&amp;quot;&lt;br /&gt;
		set ip &amp;quot;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return $ip&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proc get_ip_myip {} {&lt;br /&gt;
	set myhost &amp;quot;www.whatismyip.com&amp;quot;&lt;br /&gt;
	set myport 80&lt;br /&gt;
	&lt;br /&gt;
	msg &amp;quot;Trying to get IP from $myhost:$myport&amp;quot;&lt;br /&gt;
	set sock [socket $myhost $myport]&lt;br /&gt;
	fconfigure $sock -buffering line&lt;br /&gt;
	puts $sock &amp;quot;GET / HTTP/1.0&amp;quot;&lt;br /&gt;
	puts $sock &amp;quot;Host: $myhost&amp;quot;&lt;br /&gt;
	puts $sock &amp;quot;&amp;quot;&lt;br /&gt;
	set out [read $sock]&lt;br /&gt;
	close $sock&lt;br /&gt;
	&lt;br /&gt;
	# Take out all quotes as they cause problems with TCL lists&lt;br /&gt;
	regsub -all &amp;quot;\&amp;quot;&amp;quot; $out &amp;quot;&amp;quot; out&lt;br /&gt;
	&lt;br /&gt;
	# Only keep the line containing the IP&lt;br /&gt;
	foreach line [split $out &amp;quot;\n&amp;quot;] {&lt;br /&gt;
		if {[string match &amp;quot;*Your IP Is*&amp;quot; $line]} {&lt;br /&gt;
			break&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	# Filter out the IP from the line&lt;br /&gt;
	regsub -all &amp;quot;.* (\[0-9\]+)\\\.(\[0-9\]+)\\\.(\[0-9\]+)\\\.(\[0-9\]+) .*&amp;quot; $line {\1.\2.\3.\4} ip&lt;br /&gt;
	&lt;br /&gt;
	return $ip&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proc update {ip} {&lt;br /&gt;
	global username password server port uri&lt;br /&gt;
&lt;br /&gt;
	msg &amp;quot;Opening connection to $server:$port&amp;quot;&lt;br /&gt;
	flush stdout&lt;br /&gt;
&lt;br /&gt;
	if {![catch {set cjb [socket $server $port]} err]} {&lt;br /&gt;
		fconfigure $cjb -buffering line&lt;br /&gt;
&lt;br /&gt;
		# Create and send HTTP request&lt;br /&gt;
		set req &amp;quot;GET $uri?username=$username&amp;amp;password=$password&amp;amp;ip=$ip HTTP/1.0&amp;quot;&lt;br /&gt;
#		msg &amp;quot;Request: $req&amp;quot;&lt;br /&gt;
		puts $cjb $req&lt;br /&gt;
		# Very important!&lt;br /&gt;
		puts $cjb &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		# Read the output page&lt;br /&gt;
		set out [read $cjb]&lt;br /&gt;
&lt;br /&gt;
		# All done!&lt;br /&gt;
		close $cjb&lt;br /&gt;
	} else {&lt;br /&gt;
		set out &amp;quot;&amp;quot;&lt;br /&gt;
		msg &amp;quot;ERROR: $err&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	return $out&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proc parse_reply {reply} {&lt;br /&gt;
	set l [split $reply \n]&lt;br /&gt;
#	msg &amp;quot;--&amp;gt; [llength $l] elements&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	set out 0&lt;br /&gt;
	foreach line $l {&lt;br /&gt;
#		msg &amp;quot;--&amp;gt; $line&amp;quot;&lt;br /&gt;
		if {[string match &amp;quot;*has been updated to point to*&amp;quot; $line]} {&lt;br /&gt;
#			msg &amp;quot;FOUND: $line&amp;quot;&lt;br /&gt;
			set out 1&lt;br /&gt;
			msg &amp;quot;Update succeeded!&amp;quot;&lt;br /&gt;
			break&lt;br /&gt;
		} elseif {[string match &amp;quot;*The specified password is incorrect*&amp;quot; $line]} {&lt;br /&gt;
			msg &amp;quot;Update failed: wrong password!&amp;quot;&lt;br /&gt;
			break&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return $out&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proc check_options {} {&lt;br /&gt;
	global argv username password pretend&lt;br /&gt;
&lt;br /&gt;
	if {$username == &amp;quot;&amp;quot; || $password == &amp;quot;&amp;quot;} {&lt;br /&gt;
		puts &amp;quot;Please edit the script and set username and password!&amp;quot;&lt;br /&gt;
		exit 0&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	foreach option $argv {&lt;br /&gt;
		if {[string index $option 0] != &amp;quot;-&amp;quot;} {&lt;br /&gt;
			msg &amp;quot;- Invalid option \&amp;quot;$option\&amp;quot;&amp;quot;&lt;br /&gt;
		} else {&lt;br /&gt;
			set op [string range &amp;quot;$option&amp;quot; 1 end]&lt;br /&gt;
			switch $op {&lt;br /&gt;
				&amp;quot;d&amp;quot; {&lt;br /&gt;
					daemonize&lt;br /&gt;
					break&lt;br /&gt;
				} &amp;quot;p&amp;quot; {&lt;br /&gt;
					set pretend 1&lt;br /&gt;
					break&lt;br /&gt;
				} &amp;quot;h&amp;quot; {&lt;br /&gt;
					help&lt;br /&gt;
					exit 0&lt;br /&gt;
				} default {&lt;br /&gt;
					msg &amp;quot;- Invalid option \&amp;quot;$option\&amp;quot;&amp;quot;&lt;br /&gt;
					break&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proc doit {} {&lt;br /&gt;
	global device daemon sleeptime lastip pretend&lt;br /&gt;
&lt;br /&gt;
	set done 0&lt;br /&gt;
	while {!$done} {&lt;br /&gt;
		if {$device != &amp;quot;&amp;quot;} {&lt;br /&gt;
			set ip [get_ip_ifconfig $device]&lt;br /&gt;
		}&lt;br /&gt;
		if {$device == &amp;quot;&amp;quot; || $ip == &amp;quot;&amp;quot;} {&lt;br /&gt;
			set ip [get_ip_myip]&lt;br /&gt;
		}&lt;br /&gt;
		if {!$pretend &amp;amp;&amp;amp; $ip != $lastip} {&lt;br /&gt;
			msg &amp;quot;Updating CJB.net IP to $ip&amp;quot;&lt;br /&gt;
			set res [update $ip]&lt;br /&gt;
			set out [parse_reply $res]&lt;br /&gt;
			set lastip $ip&lt;br /&gt;
		} elseif {!$pretend} {&lt;br /&gt;
			msg &amp;quot;No IP change detected&amp;quot;&lt;br /&gt;
		} else {&lt;br /&gt;
			msg &amp;quot;Not updating CJB.net IP since -p was used&amp;quot;&lt;br /&gt;
			set out 0&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		if {!$pretend &amp;amp;&amp;amp; $daemon} {&lt;br /&gt;
			# Daemon mode: sleep for some time and then run again&lt;br /&gt;
			# We never return (unless killed :-))&lt;br /&gt;
			set sleepms [expr $sleeptime * 1000]&lt;br /&gt;
			msg &amp;quot;Sleeping for $sleeptime seconds&amp;quot;&lt;br /&gt;
			after $sleepms&lt;br /&gt;
		} else {&lt;br /&gt;
			# Single run mode, get outta here!&lt;br /&gt;
			set done 1&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return $out&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proc welcome {} {&lt;br /&gt;
	global version&lt;br /&gt;
&lt;br /&gt;
	puts \&lt;br /&gt;
&amp;quot;##############################################################&lt;br /&gt;
CJB.tcl V $version&lt;br /&gt;
Copyright (C) 2005 SukkoPera &amp;lt;enjoy.the.silence@iol.it&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program comes with ABSOLUTELY NO WARRANTY.&lt;br /&gt;
This is free software, and you are welcome to redistribute it&lt;br /&gt;
under certain conditions; see the GNU GPL for details.&lt;br /&gt;
##############################################################&lt;br /&gt;
&lt;br /&gt;
Use -h for help&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
proc main {} {&lt;br /&gt;
	welcome&lt;br /&gt;
	check_options&lt;br /&gt;
	exit [expr ![doit]]&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Data:    	03 Jun 2006&lt;br /&gt;
* Autore:    	Useless&lt;br /&gt;
* Versione:    	0.5#!/usr/bin/tclsh&lt;/div&gt;</summary>
		<author><name>L1q1d</name></author>	</entry>

	</feed>