2018-02-13 13:23:40 +03:00
|
|
|
#!/bin/sh
|
|
|
|
# Tcl ignores the next line -*- tcl -*- \
|
|
|
|
exec wish "$0" -- "$@"
|
|
|
|
|
2018-02-17 20:25:02 +03:00
|
|
|
###############################################
|
2018-02-20 20:38:11 +03:00
|
|
|
# Tcl/Tk Project Manager #
|
|
|
|
# Distrubuted under GPL #
|
|
|
|
# Copyright (c) "Sergey Kalinin", 2001, #
|
|
|
|
# Home: http://nuk-svk.ru #
|
|
|
|
# Author: Sergey Kalinin banzaj28@yandex.ru #
|
|
|
|
###############################################
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
########## VERSION INFORMATION ##########
|
2018-01-11 11:04:41 +03:00
|
|
|
set ver "0.4.5"
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
package require BWidget
|
|
|
|
package require msgcat
|
|
|
|
|
2018-02-15 16:00:22 +03:00
|
|
|
set wishOpList [info commands]
|
2015-10-19 13:27:31 +03:00
|
|
|
## DO NOT EDIT THIS LINE! USE install.tcl SCRIPT ##
|
2018-02-15 21:29:47 +03:00
|
|
|
|
|
|
|
# if {$tcl_platform(platform) == "unix"} {
|
|
|
|
# set initDir "$env(HOME)"
|
|
|
|
# set rootDir "/usr/local"
|
|
|
|
# set tmpDir "$env(HOME)/tmp"
|
|
|
|
# set tclDir "/usr/bin"
|
|
|
|
# } elseif {$tcl_platform(platform) == "windows"} {
|
|
|
|
# set initDir "c:\\"
|
|
|
|
# set rootDir "c:\\Tcl"
|
|
|
|
# set tmpDir "c:\\temp"
|
|
|
|
# set tclDir "C:\\Tcl\\bin"
|
|
|
|
# }
|
|
|
|
set tclDir [file dirname [info nameofexecutable]]
|
|
|
|
puts $tclDir
|
|
|
|
set rootDir [pwd]
|
|
|
|
#set rootDir "/usr"
|
|
|
|
#set tclDir "/usr/bin"
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
if {[file exists $env(HOME)/projects/tcl/projman]==1} {
|
2018-02-05 11:24:14 +03:00
|
|
|
set dataDir "[file join $env(HOME) projects tcl projman lib]"
|
2015-10-19 13:27:31 +03:00
|
|
|
set docDir "[file join $env(HOME) projects tcl projman hlp ru]"
|
|
|
|
set imgDir "[file join $env(HOME) projects tcl projman img]"
|
|
|
|
set msgDir "[file join $env(HOME) projects tcl projman msgs]"
|
2018-01-11 11:04:41 +03:00
|
|
|
set binDir "[file join $env(HOME) projects tcl projman]"
|
2015-10-19 13:27:31 +03:00
|
|
|
} else {
|
2018-02-15 21:29:47 +03:00
|
|
|
set dataDir "[file join $rootDir lib]"
|
|
|
|
set docDir "[file join $rootDir hlp ru]"
|
|
|
|
set imgDir "[file join $rootDir img]"
|
|
|
|
set msgDir "[file join $rootDir msgs]"
|
|
|
|
set binDir $rootDir
|
|
|
|
# set binDir [file join $rootDir bin]
|
|
|
|
# set dataDir [file join $rootDir share projman]
|
|
|
|
# set docDir [file join $rootDir share doc projman-$ver]
|
|
|
|
# set imgDir [file join $dataDir img]
|
|
|
|
# set msgDir [file join $dataDir msgs]
|
2015-10-19 13:27:31 +03:00
|
|
|
}
|
2018-02-05 11:24:14 +03:00
|
|
|
set hlDir [file join $dataDir highlight]
|
|
|
|
|
2015-10-19 13:27:31 +03:00
|
|
|
if {$tcl_platform(platform) == "unix"} {
|
|
|
|
set tmpDir "$env(HOME)/tmp"
|
|
|
|
set workDir "[file join $env(HOME) .projman]"
|
|
|
|
} elseif {$tcl_platform(platform) == "windows"} {
|
|
|
|
if [info exists env(TEMP)] {
|
|
|
|
set tmpDir "$env(TEMP)"
|
|
|
|
} else {
|
|
|
|
set tmpDir "c:\\temp"
|
|
|
|
}
|
|
|
|
if {[info exist env(HOMEDRIVE)] && [info exists env(HOMEPATH)]} {
|
2018-02-15 21:29:47 +03:00
|
|
|
set workDir "[file join $env(HOMEDRIVE) $env(HOMEPATH) .projman]"
|
2015-10-19 13:27:31 +03:00
|
|
|
} else {
|
|
|
|
set workDir "[file join $rootDir .projman]"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if {[file exists $workDir] == 0} {file mkdir $workDir}
|
|
|
|
if {[file exists $tmpDir] == 0} {file mkdir $tmpDir}
|
|
|
|
|
|
|
|
if {[file exists [file join $workDir projman.conf]] == 0} {
|
2018-02-15 21:29:47 +03:00
|
|
|
file copy -force -- projman.conf [file join $workDir projman.conf]
|
2015-10-19 13:27:31 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
source [file join $workDir projman.conf]
|
|
|
|
|
|
|
|
## CREATE WORK DIR ##
|
|
|
|
if {[file exists $rpmDir] != 1} {file mkdir $rpmDir}
|
|
|
|
if {[file exists $tgzDir] != 1} {file mkdir $tgzDir}
|
|
|
|
if {[file exists $projDir] != 1} {file mkdir $projDir}
|
|
|
|
|
|
|
|
## SETTINGS ENVIRONMENT LANGUAGE ##
|
|
|
|
if [info exists env(LANG)] {
|
|
|
|
set locale $env(LANG)
|
|
|
|
} else {
|
|
|
|
set locale $locale
|
|
|
|
}
|
|
|
|
|
|
|
|
::msgcat::mclocale $locale
|
|
|
|
::msgcat::mcload $msgDir
|
|
|
|
|
|
|
|
## LOAD FILE ##
|
2018-02-05 11:24:14 +03:00
|
|
|
# Load modules but maain.tcl must last loaded
|
|
|
|
foreach modFile [lsort [glob -nocomplain [file join $dataDir *.tcl]]] {
|
|
|
|
if {[file tail $modFile] ne "main.tcl"} {
|
|
|
|
source $modFile
|
|
|
|
puts "Loaded module $modFile"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
# load code highlight modules
|
|
|
|
foreach modFile [lsort [glob -nocomplain [file join $hlDir *.tcl]]] {
|
|
|
|
source $modFile
|
|
|
|
puts "Loaded highlight module $modFile"
|
|
|
|
}
|
2015-10-19 13:27:31 +03:00
|
|
|
|
|
|
|
source [file join $dataDir main.tcl]
|
|
|
|
|
2018-01-11 11:04:41 +03:00
|
|
|
#option add *tree.foreground red widgetDefault
|
2018-01-11 14:42:43 +03:00
|
|
|
# Set colors for widgets
|
2018-02-20 14:13:47 +03:00
|
|
|
option add *Frame.Background $editor(bg) interactive
|
|
|
|
option add *ScrollableFrame.Background $editor(bg) interactive
|
|
|
|
option add *ScrolledWindow.Background $editor(bg) interactive
|
|
|
|
option add *Button.Foreground $editor(fg) interactive
|
|
|
|
option add *Button.Background $editor(bg) interactive
|
2018-02-18 15:01:56 +03:00
|
|
|
option add *Button.activeBackground $editor(bg) userDefault
|
|
|
|
option add *Button.activeForeground $editor(fg) userDefault
|
|
|
|
|
2018-02-20 14:13:47 +03:00
|
|
|
option add *Entry.Foreground $editor(fg) interactive
|
|
|
|
option add *Entry.Background $editor(bg) interactive
|
|
|
|
option add *Label.Foreground $editor(fg) interactive
|
2018-02-18 15:01:56 +03:00
|
|
|
option add *Label.Background $editor(bg) interactive
|
2018-02-20 14:13:47 +03:00
|
|
|
option add *Checkbox.Foreground $editor(fg) interactive
|
|
|
|
option add *Checkbox.Background $editor(bg) interactive
|
|
|
|
option add *Checkbutton.Foreground $editor(fg) interactive
|
|
|
|
option add *Checkbutton.Background $editor(bg) interactive
|
|
|
|
option add *Combobox.Foreground $editor(fg) interactive
|
|
|
|
option add *Combobox.Background $editor(bg) interactive
|
|
|
|
option add *Text.Foreground $editor(fg) interactive
|
|
|
|
option add *Text.Background $editor(bg) interactive
|
|
|
|
option add *Tree.Background $editor(bg) interactive
|
|
|
|
option add *Tree.Foreground $editor(fg) interactive
|
|
|
|
option add *Scrollbar.Background $editor(bg) interactive
|
|
|
|
option add *Canvas.Background $editor(bg) interactive
|
|
|
|
option add *Canvas.Foreground $editor(fg) interactive
|
|
|
|
option add *Node.Foreground $editor(fg) interactive
|
|
|
|
option add *NoteBook.bg $editor(bg) interactive
|
|
|
|
option add *NoteBook.fg $editor(fg) interactive
|
|
|
|
option add *Listbox.Foreground $editor(fg) interactive
|
|
|
|
option add *Listbox.Background $editor(bg) interactive
|
2018-02-18 15:01:56 +03:00
|
|
|
|
|
|
|
#option add *Button.font $guifont userDefault
|
|
|
|
#option add *Label.font $guifont userDefault
|
|
|
|
#option add *Menu.font $guifont userDefault
|
|
|
|
#option add *Menubutton.font $guifont userDefault
|
|
|
|
option add *Dialog.msg.background $editor(bg)
|
|
|
|
|
|
|
|
# option add *Text.Background $textbg userDefault
|
|
|
|
# option add *Entry.Background $textbg userDefault
|
|
|
|
# option add *Text.Foreground $textfg userDefault
|
|
|
|
# option add *Entry.Foreground $textfg userDefault
|
|
|
|
# option add *Button.activeBackground $bg userDefault
|
|
|
|
# option add *Button.activeForeground $fg userDefault
|
|
|
|
# option add *Scrollbar.activeBackground $bg userDefault
|
|
|
|
# option add *Scrollbar.troughColor $shadow userDefault
|
|
|
|
# option add *Canvas.Background $shadow userDefault
|
|
|
|
#
|
|
|
|
# # These menu configs work if you use native menus.
|
|
|
|
# option add *Menu.borderWidth 1 userDefault
|
|
|
|
# option add *Menu.activeForeground $fg userDefault
|
|
|
|
# option add *Menubutton.activeForeground $fg userDefault
|
|
|
|
#
|
|
|
|
# # This draws a thin border around buttons
|
|
|
|
# #option add *highlightBackground $bg userDefault
|
|
|
|
# # Suppress the border
|
|
|
|
# option add *HighlightThickness 0 userDefault
|
|
|
|
# # Add it back for text and entry widgets
|
|
|
|
# option add *Text.highlightBackground $bg userDefault
|
|
|
|
# option add *Entry.highlightBackground $bg userDefault
|
|
|
|
# option add *Text.HighlightThickness 2 userDefault
|
|
|
|
# option add *Entry.HighlightThickness 1 userDefault
|
|
|
|
#
|
|
|
|
#
|
2018-02-15 21:29:47 +03:00
|
|
|
|
2018-02-20 14:13:47 +03:00
|
|
|
|
2018-02-20 20:38:11 +03:00
|
|
|
|
|
|
|
|