Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ amnutsIdent
amnutsTalker
supervisord.pid
supervisord.log
files/datafiles/*.yaml
21 changes: 17 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,12 @@ VENDOR_LIBTELNET_OBJ_DIR = $(TALKER_OBJ_DIR)
VENDOR_LIBTELNET_SRC = $(wildcard $(VENDOR_LIBTELNET_SRC_DIR)/*.c)
VENDOR_LIBTELNET_OBJS = $(addprefix $(VENDOR_LIBTELNET_OBJ_DIR)/,$(notdir $(VENDOR_LIBTELNET_SRC:.c=.o)))

# libyaml: https://github.com/yaml/libyaml
VENDOR_LIBYAML_SRC_DIR = $(TALKER_SRC_DIR)/vendors/libyaml
VENDOR_LIBYAML_OBJ_DIR = $(TALKER_OBJ_DIR)
VENDOR_LIBYAML_SRC = $(wildcard $(VENDOR_LIBYAML_SRC_DIR)/*.c)
VENDOR_LIBYAML_OBJS = $(addprefix $(VENDOR_LIBYAML_OBJ_DIR)/,$(notdir $(VENDOR_LIBYAML_SRC:.c=.o)))

#
# Platform-specific libraries that need to be included
#
Expand Down Expand Up @@ -94,6 +100,7 @@ distclean: clean
rm -f $(IDENTD_SRC_DIR)/*.[ch]~ $(IDENTD_SRC_DIR)/*.[ch].bak
rm -f $(VENDOR_SDS_SRC_DIR)/*.[ch]~ $(VENDOR_SDS_SRC_DIR)/*.[ch].bak
rm -f $(VENDOR_LIBTELNET_SRC_DIR)/*.[ch]~ $(VENDOR_LIBTELNET_SRC_DIR)/*.[ch].bak
rm -f $(VENDOR_LIBYAML_SRC_DIR)/*.[ch]~ $(VENDOR_LIBYAML_SRC_DIR)/*.[ch].bak
rm -f $(TALKER_BIN) $(BINDIR)/$(TALKER_BIN)
rm -f $(IDENTD_BIN) $(BINDIR)/$(IDENTD_BIN)
rm -f $(INCDIR)/*.[ch]~ $(INCDIR)/*.[ch].bak
Expand All @@ -104,23 +111,24 @@ clean:
rm -f $(IDENTD_OBJS) $(IDENTD_OBJS:.o=.d)
rm -f $(VENDOR_SDS_OBJS) $(VENDOR_SDS_OBJS:.o=.d)
rm -f $(VENDOR_LIBTELNET_OBJS) $(VENDOR_LIBTELNET_OBJS:.o=.d)
rm -f $(VENDOR_LIBYAML_OBJS) $(VENDOR_LIBYAML_OBJS:.o=.d)

install: $(BINDIR)/$(TALKER_BIN) $(BINDIR)/$(IDENTD_BIN)

build: $(TALKER_BIN) $(IDENTD_BIN)

compile: $(TALKER_OBJS) $(IDENTD_OBJS) $(VENDOR_SDS_OBJS) $(VENDOR_LIBTELNET_OBJS)
compile: $(TALKER_OBJS) $(IDENTD_OBJS) $(VENDOR_SDS_OBJS) $(VENDOR_LIBTELNET_OBJS) $(VENDOR_LIBYAML_OBJS)

print-%: ; @echo $* = $($*)

vpath %.c $(TALKER_SRC_DIR) $(TALKER_SRC_DIR)/commands $(IDENTD_SRC_DIR) $(VENDOR_SDS_SRC_DIR) $(VENDOR_LIBTELNET_SRC_DIR)
vpath %.c $(TALKER_SRC_DIR) $(TALKER_SRC_DIR)/commands $(IDENTD_SRC_DIR) $(VENDOR_SDS_SRC_DIR) $(VENDOR_LIBTELNET_SRC_DIR) $(VENDOR_LIBYAML_SRC_DIR)

$(BINDIR)/$(TALKER_BIN) $(BINDIR)/$(IDENTD_BIN): $(BINDIR)/%: %
@echo "Installing $< ..."
chmod $(PERMS) $<
mv $< $(BINDIR)

$(TALKER_BIN): $(TALKER_OBJS) $(VENDOR_SDS_OBJS) $(VENDOR_LIBTELNET_OBJS)
$(TALKER_BIN): $(TALKER_OBJS) $(VENDOR_SDS_OBJS) $(VENDOR_LIBTELNET_OBJS) $(VENDOR_LIBYAML_OBJS)
@echo "Linking $@ ..."
$(CC) $(LD_FLAGS) $^ $(TALKER_LIBS) -o $@

Expand Down Expand Up @@ -148,4 +156,9 @@ $(VENDOR_LIBTELNET_OBJS): $(VENDOR_LIBTELNET_OBJ_DIR)/%.o: %.c
@test -d $(VENDOR_LIBTELNET_OBJ_DIR) || mkdir $(VENDOR_LIBTELNET_OBJ_DIR)
$(CC) $(C_FLAGS) $(CC_FLAGS) $(TALKER_FLAGS) -c -o $@ $<

-include $(TALKER_OBJS:.o=.d) $(IDENTD_OBJS:.o=.d) $(VENDOR_SDS_OBJS:.o=.d) $(VENDOR_LIBTELNET_OBJS:.o=.d)
$(VENDOR_LIBYAML_OBJS): $(VENDOR_LIBYAML_OBJ_DIR)/%.o: %.c
@echo "Compiling libyaml library $< ... ($@)"
@test -d $(VENDOR_LIBYAML_OBJ_DIR) || mkdir $(VENDOR_LIBYAML_OBJ_DIR)
$(CC) $(C_FLAGS) $(CC_FLAGS) -I$(VENDOR_LIBYAML_SRC_DIR) $(TALKER_FLAGS) -DHAVE_CONFIG_H=0 -DYAML_VERSION_MAJOR=0 -DYAML_VERSION_MINOR=2 -DYAML_VERSION_PATCH=5 -DYAML_VERSION_STRING="\"0.2.5\"" -Wno-pedantic -c -o $@ $<

-include $(TALKER_OBJS:.o=.d) $(IDENTD_OBJS:.o=.d) $(VENDOR_SDS_OBJS:.o=.d) $(VENDOR_LIBTELNET_OBJS:.o=.d) $(VENDOR_LIBYAML_OBJS:.o=.d)
27 changes: 22 additions & 5 deletions docker-setup.sh
Original file line number Diff line number Diff line change
@@ -1,14 +1,31 @@
#!/usr/bin/env bash

CONFIG_FILE="$(pwd)/files/datafiles/config"
MAIN_PORT=$(grep "\bmainport\b" "$CONFIG_FILE" | awk '{ print $2 }')
WIZ_PORT=$(grep "\bwizport\b" "$CONFIG_FILE" | awk '{ print $2 }')
LINK_PORT=$(grep "\blinkport\b" "$CONFIG_FILE" | awk '{ print $2 }')
CONFIG_FILE="$(pwd)/files/datafiles/config.yaml"
if [ ! -f "$CONFIG_FILE" ]; then
CONFIG_FILE="$(pwd)/files/datafiles/config.yaml.sample"
fi

read_port() {
awk -v key="$1" '
/^[A-Za-z]/ { in_server = ($0 ~ /^server:/); in_ports = 0 }
in_server && /^ [A-Za-z]/ { in_ports = ($0 ~ /^ ports:[[:space:]]*$/) }
in_ports && /^ [A-Za-z]/ {
split($0, parts, ":")
k = parts[1]; sub(/^[[:space:]]+/, "", k)
v = parts[2]; sub(/^[[:space:]]+/, "", v); sub(/[[:space:]]+$/, "", v)
if (k == key) { print v; exit }
}
' "$CONFIG_FILE"
}

MAIN_PORT=$(read_port main)
WIZ_PORT=$(read_port wiz)
LINK_PORT=$(read_port link)

cat << EOT > Dockerfile
FROM alpine:latest

RUN apk add --no-cache build-base bash busybox-extras clang gdb lldb supervisor
RUN apk add --no-cache build-base bash busybox-extras clang gdb lldb supervisor python3 py3-yaml
COPY supervisord.conf /etc/supervisord.conf

WORKDIR /amnuts
Expand Down
6 changes: 0 additions & 6 deletions files/datafiles/andys_computer.R

This file was deleted.

6 changes: 0 additions & 6 deletions files/datafiles/back_store.R

This file was deleted.

2 changes: 0 additions & 2 deletions files/datafiles/box.R

This file was deleted.

4 changes: 0 additions & 4 deletions files/datafiles/car_park.R

This file was deleted.

4 changes: 0 additions & 4 deletions files/datafiles/conference.R

This file was deleted.

87 changes: 0 additions & 87 deletions files/datafiles/config

This file was deleted.

73 changes: 73 additions & 0 deletions files/datafiles/config.yaml.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
server:
verification: amnutsabc
ports:
main: 2402
wiz: 2403
link: 2404
max_users: 50
max_clones: 5
heartbeat: 2

timeouts:
login_idle: 180
user_idle: 3600
timeout_afks: true
timeout_maxlevel: WIZ

defaults:
colour: true
prompt: false
charecho: false
passwordecho: false
warp_room: reception
jail_room: cupboard
bank_room: safe
shoot_room: directors

moderation:
ban_swearing: 'OFF'
minlogin_level: NONE
min_private: 2
ignore_mp_level: ARCH
gatecrash_level: GOD
boot_off_min: true
flood_protect: true

system:
logging: true
ignore_sigterm: false
auto_connect: true
crash_action: NONE
resolve_ip: AUTO
random_motds: true

users:
auto_purge: false
allow_recaps: true
auto_promote: false
personal_rooms: true
startup_room_parse: true
rem_user_maxlevel: SUPER
rem_user_deflevel: USER
wizport_level: WIZ

messages:
lifetime_days: 10
check_time: 01:00

sites:
talker1:
address: localhost
port: 5002
verification: test123
allow: ALL
darkroom:
address: foo.bar.com
port: 3456
verification: Bloggs456
allow: ALL
myplace:
address: 11.11.11.11
port: 7401
verification: NotReal
allow: ALL
63 changes: 0 additions & 63 deletions files/datafiles/config2

This file was deleted.

4 changes: 0 additions & 4 deletions files/datafiles/crate.R

This file was deleted.

7 changes: 0 additions & 7 deletions files/datafiles/cupboard.R

This file was deleted.

5 changes: 0 additions & 5 deletions files/datafiles/directors.R

This file was deleted.

Loading