blob: 4dbd1bf82561a85912740ef1e72f1324ea921409 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
#!/usr/bin/env bash
#####################################################################
## _______ _______ _______ ##
## | ___ |____ | ___ | ##
## | | |_| / /| | |_| ##
## | |_____ / / | |_____ ##
## |_____ | / / |_____ | ##
## _ | | / / _ | | ##
## | |___| |/ /____| |___| | ##
## |_______|_______|_______| ##
## ##
## Wiimms SZS Tools ##
## http://szs.wiimm.de/ ##
## ##
#####################################################################
## ##
## This file is part of the SZS project. ##
## Visit http://szs.wiimm.de/ for project details and sources. ##
## ##
## Copyright (c) 2011-2019 by Dirk Clemens <wiimm@wiimm.de> ##
## ##
#####################################################################
#------------------------------------------------------------------------------
# simple cygwin check
if [[ $1 != --cygwin ]]
then
echo "Option --cygwin not set => exit" >&2
exit 1
fi
#------------------------------------------------------------------------------
# pre definitions
BIN_FILES="wszst wbmgt wimgt wkclt wkmpt wstrt "
SHARE_FILES=""
WIN_INSTALL_PATH="Wiimm/SZS"
#------------------------------------------------------------------------------
# setup
echo "* setup"
export PATH=".:$PATH"
mkdir -p /tmp
key="/machine/SOFTWARE/Microsoft/Windows/CurrentVersion/ProgramFilesDir"
if ! WIN_PROG_PATH="$(regtool get "$key")" || [[ $WIN_PROG_PATH = "" ]]
then
echo "Can't determine Windows program path => abort" >&2
exit 1
fi
#CYGWIN_PROG_PATH="$( realpath "$WIN_PROG_PATH" )"
CYGWIN_PROG_PATH="${WIN_PROG_PATH//\\//}"
WDEST="$WIN_PROG_PATH\\${WIN_INSTALL_PATH//\//\\}"
CDEST="$CYGWIN_PROG_PATH/$WIN_INSTALL_PATH"
#------------------------------------------------------------------------------
# install files
# mkdir before testing the directory
mkdir -p "$CDEST" "$CDEST/auto-add/effect"
chmod 666 "$CDEST/auto-add" "$CDEST/auto-add/effect"
if [[ $(stat -c%d-%i "$PWD") != "$(stat -c%d-%i "$CDEST")" ]]
then
echo "* install files to $WDEST"
cp --preserve=time *.bat *.dll *.exe *.sh "$CDEST"
fi
#------------------------------------------------------------------------------
# define application pathes
for tool in $BIN_FILES
do
[[ -s "$CDEST/$tool.exe" ]] || continue
echo "* define application path for '$tool.exe'"
key="/machine/SOFTWARE/Microsoft/Windows/CurrentVersion/App Paths/$tool.exe"
regtool add "$key"
regtool set -s "$key/" "${WDEST}\\${tool}.exe"
regtool set -s "$key/Path" "${WDEST}\\"
done
#------------------------------------------------------------------------------
# add WIT path to environment 'Path'
echo "* add SZS path to environment 'Path'"
function set_path()
{
local key="$1"
local p=
local count=0
local new_path=
# split at ';' & substitute ' ' temporary to ';' to be space save
for p in $( regtool --quiet get "$key" | tr '; ' '\n;' )
do
p="${p//;/ }"
#echo " -> |$p|"
if [[ "$p" == "$WDEST" ]]
then
((count++)) || new_path="$new_path;$p"
#echo "$count $WDEST"
elif [[ $p != "" ]]
then
new_path="$new_path;$p"
fi
done
if [[ $new_path != "" ]]
then
((count)) || new_path="$new_path;$WDEST"
#echo "count=$count"
#echo "new_path=${new_path:1}"
regtool set -e "$key" "${new_path:1}"
fi
}
set_path '/machine/SYSTEM/CurrentControlSet/Control/Session Manager/Environment/Path'
set_path '/user/Environment/Path'
#------------------------------------------------------------------------------
|