-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.zsh
executable file
·57 lines (43 loc) · 1.09 KB
/
main.zsh
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
#!/bin/zsh
: <<EOF
Copyright 2013 Lucas A. Dohring
Licensed under the EUPL, Version 1.1 or – as soon they
will be approved by the European Commission - subsequent
versions of the EUPL (the "Licence");
You may not use this work except in compliance with the
Licence.
You may obtain a copy of the Licence at:
http://ec.europa.eu/idabc/eupl
Unless required by applicable law or agreed to in
writing, software distributed under the Licence is
distributed on an "AS IS" basis,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.
See the Licence for the specific language governing
permissions and limitations under the Licence.
EOF
zmodload zsh/net/tcp zsh/zselect
readonly PORT=6667
ztcp -l $PORT || exit 255
FD=$REPLY
readonly VERSION="zIRCd 0.0.1~zsh-$ZSH_VERSION"
readonly CREATED="$(date)"
TRAPWINCH() {
echo winch
}
TRAPINT() {
for fd in $clients; do
ztcp -c $fd
done
pkill client.zsh
ztcp -c $FD
exit 255
}
echo Listening on port $PORT fd $FD
./logic.zsh&
while true
do
if ztcp -a $FD; then
env -i CREATED="$CREATED" ./client.zsh $REPLY&
fi
done