diff --git a/README.md b/README.md index b6f341b..8615b3a 100644 --- a/README.md +++ b/README.md @@ -13,3 +13,4 @@ http://nuk-svk.ru/soft/rac-gui/ Иконки взяты с сайта https://www.iconsdb.com/royal-blue-icons/ + diff --git a/rac_gui.tcl b/rac_gui.tcl index 5447115..277ca5e 100755 --- a/rac_gui.tcl +++ b/rac_gui.tcl @@ -20,17 +20,42 @@ package require msgcat # Устанавливаем текущий каталог set dir(root) [pwd] -# Устанавливаем рабочий каталог, если его нет то создаём -set dir(work) [file join $env(HOME) .rac_gui] -if {[file exists $dir(work)] == 0 } { +# Устанавливаем рабочий каталог, если его нет то создаём. +# Согласно спецификации XDG проверяем наличие переменных и каталогов +if [info exists env(XDG_CONFIG_HOME)] { + set dir(work) [file join $env(XDG_CONFIG_HOME) rac_gui] +} elseif [file exists [file join $env(HOME) .config]] { + set dir(work) [file join $env(HOME) .config rac_gui] +} else { + set dir(work) [file join $env(HOME) .rac_gui] +} + +if {[file exists $dir(work)] == 0} { file mkdir $dir(work) } +# Проверяем старые конфиги и при наличии переносим +if {[file exists [file join $env(HOME) .rac_gui]] ==1 && $dir(work) ne [file join $env(HOME) .rac_gui]} { + cd [file join $env(HOME) .rac_gui] + foreach f [glob -type f *] { + if {![file exists [file join $dir(work) $f]]} { + puts "File copy - [file copy $f $dir(work)]" + file rename $f [list $f old] + } + } + cd $env(HOME) + #file rename -force [file join $env(HOME) .rac_gui] [file join $env(HOME) .rac_gui.old] + file delete -force [file join $env(HOME) .rac_gui] +} + + +puts "Work dir is $dir(work)" + # каталог с модулями set dir(lib) "[file join $dir(root) lib]" # загружаем пользовательский конфиг, если он отсутствует, то копируем дефолтный if {[file exists [file join $dir(work) rac_gui.cfg]] ==0} { - file copy [file join [pwd] rac_gui.cfg] [file join $dir(work) rac_gui.cfg] + file copy [file join $dir(root) rac_gui.cfg] [file join $dir(work) rac_gui.cfg] } source [file join $dir(work) rac_gui.cfg] @@ -110,3 +135,5 @@ if [file exists [file join $dir(work) 1c_srv_new.cfg]] { puts $servers_list } + +