1#!/usr/bin/tclsh
2
3###############################################################
4# SecPanel helper
5# Converting from old profile seetings to new version (0.5)
6###############################################################
7
8proc cp {} {
9    global env
10
11    if {! [file exists "$env(HOME)/.secpanel/sites"]} {
12	puts "No sites-file to convert"
13	return
14    }
15
16    set sf [open "$env(HOME)/.secpanel/sites"]
17
18    while {[gets $sf line] >= 0} {
19	set nf [open "$env(HOME)/.secpanel/profiles/newfiles.tmp" w]
20
21	set sitetitle [lindex [split $line \#] 0]
22	set sitehost [lindex [split $line \#] 1]
23	set siteuser [lindex [split $line \#] 2]
24
25	set defs [open "$env(HOME)/.secpanel/default.profile"]
26	while {[gets $defs defline] >= 0} {
27	    switch -regexp $defline {
28		"^set title .*" {
29		    regsub -all " " $sitetitle "" filetitle
30		    puts $nf "set title \"$sitetitle\""
31		}
32		"^set host .*" {
33		    puts $nf "set host \"$sitehost\""
34		}
35		"^set user .*" {
36		    puts $nf "set user \"$siteuser\""
37		}
38		default {
39		    puts $nf $defline
40		}
41	    }
42	}
43	close $defs
44	close $nf
45	file copy -force "$env(HOME)/.secpanel/profiles/newfiles.tmp" "$env(HOME)/.secpanel/profiles/$filetitle.profile"
46	unset filetitle
47	file delete -force "$env(HOME)/.secpanel/profiles/newfiles.tmp"
48    }
49    close $sf
50}
51
52proc do_backup {} {
53    global env
54    set butime [clock seconds]
55    file copy -force "$env(HOME)/.secpanel" "$env(HOME)/secpanel_backup$butime"
56    puts "Put Backup of $env(HOME)/.secpanel to $env(HOME)/secpanel_backup$butime"
57}
58
59proc moveprofs {} {
60    global env
61    file delete -force "$env(HOME)/.secpanel/default.profile"
62    foreach file [glob -nocomplain "$env(HOME)/.secpanel/*.profile"] {
63	file copy -force "$file" "$env(HOME)/.secpanel/profiles"
64	file delete -force "$file"
65    }
66    file delete -force "$env(HOME)/.secpanel/sites"
67}
68
69puts "Doing profile conversion..."
70do_backup
71file mkdir "$env(HOME)/.secpanel/profiles"
72cp
73moveprofs
74