# Debugging
function send(msg) {
- print " > " msg > "/dev/stderr"
print msg
- system("sleep 1")
fflush()
}
-// {
- #print "" > "/dev/stderr"
- print " < " $0 > "/dev/stderr"
-}
-
function debug(msg) {
print " # " msg > "/dev/stderr"
fflush()
debug("MSG: " MSG)
}
-# Functions
-function connect(server, nick, channel) {
+# Reloading
+function setup() {
+ "whoami" | getline _name
+ "hostname" | getline _host
+ send("USER " _name " " _host " " server " :" nick)
+ send("NICK " nick)
+}
+
+function connect(server, port, nick, channel) {
SERVER = server
+ PORT = port
NICK = nick
CHANNEL = channel
- if (FIRST) {
- "whoami" | getline _name
- "hostname" | getline _host
- send("USER " _name " " _host " " server " :" nick)
- send("NICK " nick)
+
+ if (CHILD == "") {
+ child = "awk -f rhawk -v CHILD=1 -v FIRST=1"
+ socket = "/inet/tcp/0/" SERVER "/" PORT
+
+ debug("Starting server");
+
+ status = system();
+ while (status)
+ status = system("awk -f rhawk -v CHILD=1");
+
+ #print " > " msg > "/dev/stderr"
+ print msg
+ #print "" > "/dev/stderr"
+ #print " < " $0 > "/dev/stderr"
+ fflush()
+
+ exit(0);
+ } else {
+ if (first)
+ setup()
+ debug("Starting child: CHILD=" CHILD " FIRST=" FIRST);
}
+
+}
+
+function quit() {
+ exit(0)
+}
+
+function reload() {
+ exit(1)
}
+
+# Functions
function privmsg(to, msg) {
send("PRIVMSG " to " :" msg)
}
+
function say(msg) {
if (DST ~ "^#")
privmsg(DST, msg)
send("TOPIC " chan " :" msg)
}
-# Reloading
-BEGIN {
- if (CHILD == "") {
- debug("Starting server");
- status = system("awk -f rhawk -v CHILD=1 -v FIRST=1");
- while (status)
- status = system("awk -f rhawk -v CHILD=1");
- exit(0);
- } else {
- debug("Starting child: CHILD=" CHILD " FIRST=" FIRST);
- }
-}
-
-function quit() {
- exit(0)
-}
-
-function reload() {
- exit(1)
-}
-
# Input parsing
// {
match($0, /(:([^ ]+) +)?(([A-Z0-9]+) +)(([^ ]+) +)?(([^: ]+) +)?(:(.*))/, arr);