Init
This commit is contained in:
commit
b5d1efbbc0
|
@ -0,0 +1,14 @@
|
||||||
|
# librejam-omnom
|
||||||
|
|
||||||
|
Librejam omnom is a simple script for accepting game jam submissions over IRC,
|
||||||
|
with git links or direct archive links.
|
||||||
|
|
||||||
|
It requires `ii-ssl`, `git`, `curl`, and potentially others. bashisms are
|
||||||
|
avoided.
|
||||||
|
|
||||||
|
To run, edit the `librejam-irc`, substituting in relative path and jam
|
||||||
|
information, then simply do…
|
||||||
|
|
||||||
|
`$ sh librejam-irc`
|
||||||
|
|
||||||
|
… everything should be good.
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if ps ax | grep ii | grep -v grep > /dev/null; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
>&2 echo "ii isn't running, let's restart things…"
|
||||||
|
pkill ii
|
||||||
|
pkill librejam_irc_
|
||||||
|
fi
|
|
@ -0,0 +1,95 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
|
||||||
|
# Name: librejam_gemini
|
||||||
|
# Desc: Creates a gemini page for a game-jam entry.
|
||||||
|
# Reqs: librejam_gemini
|
||||||
|
# Date: 2022-03-30
|
||||||
|
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
|
||||||
|
|
||||||
|
sanitize() {
|
||||||
|
sed 's% %-%g' \
|
||||||
|
| tr 'A-Z' 'a-z' \
|
||||||
|
| sed 's% $%%'
|
||||||
|
}
|
||||||
|
|
||||||
|
get_release_git() {
|
||||||
|
pushd "$SUBMISSIONS_ROOT/$OUTNAME/"
|
||||||
|
git clone "$URL" "release"
|
||||||
|
if test "$?" -ne 0; then
|
||||||
|
popd
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
pushd "release/"
|
||||||
|
git checkout "$BRANCH"
|
||||||
|
if test "$?" -ne 0; then
|
||||||
|
popd
|
||||||
|
rm -rf release/
|
||||||
|
popd
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
popd
|
||||||
|
tar -czvf release.tar.gz release/
|
||||||
|
rm -rf release/
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
get_release_curl() {
|
||||||
|
local suffix="$(echo "$URL" | sed 's%.*\.%%')"
|
||||||
|
if echo "$suffix" | grep "/"; then
|
||||||
|
suffix="raw"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local out_path="$SUBMISSIONS_ROOT/$OUTNAME/release.$suffix"
|
||||||
|
|
||||||
|
curl -o "$out_path" "$URL"
|
||||||
|
if test "$?" -ne 0; then
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
OUTLEAF="$(basename "$out_path")"
|
||||||
|
}
|
||||||
|
|
||||||
|
average_rating() {
|
||||||
|
SUM="$(awk '{print $2}' "$RATINGS_FILE" | tr '\n' '+' | sed 's%+$%%')"
|
||||||
|
COUNT="$(wc -l "$RATINGS_FILE" | awk '{print $1}')"
|
||||||
|
echo "($SUM) / $COUNT" \
|
||||||
|
| bc
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SENDER="$1"
|
||||||
|
URL="$2"
|
||||||
|
BRANCH="$3"
|
||||||
|
NAME="$4"
|
||||||
|
SUBMISSIONS_ROOT="$5"
|
||||||
|
RATINGS_FILE="$6"
|
||||||
|
|
||||||
|
OUTNAME="$(echo "$NAME" | sanitize)"
|
||||||
|
OUTLEAF="release.tar.gz"
|
||||||
|
|
||||||
|
if test -z "$RATINGS_FILE" -a "$BRANCH" = ":curl"; then
|
||||||
|
get_release_curl > /dev/null
|
||||||
|
elif test -z "$RATINGS_FILE" -a -n "$BRANCH"; then
|
||||||
|
get_release_git > /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "# $NAME - By $SENDER"
|
||||||
|
echo "=> $OUTLEAF Submitted version"
|
||||||
|
echo "=> $URL Upstream source"
|
||||||
|
|
||||||
|
if test -n "$RATINGS_FILE" -a -e "$RATINGS_FILE"; then
|
||||||
|
echo ""
|
||||||
|
echo "## Ratings"
|
||||||
|
echo "* Average score: $(average_rating)"
|
||||||
|
|
||||||
|
awk '{ printf("* %s: [%s] ", $1, $2);
|
||||||
|
for(i = 1; i <= NF; i++)
|
||||||
|
if (i > 2)
|
||||||
|
printf($i" ");
|
||||||
|
print "" }' \
|
||||||
|
"$RATINGS_FILE" \
|
||||||
|
| sed 's% $%%'
|
||||||
|
fi
|
|
@ -0,0 +1,51 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
|
||||||
|
# Name: librejam_irc
|
||||||
|
# Desc: A game-jam chatbot, using ii to connect to IRC. You need to edit the
|
||||||
|
# hard-coded variables at the start of this script.
|
||||||
|
# Reqs: librejam_irc_process, ii-ssl
|
||||||
|
# Date: 2022-05-31
|
||||||
|
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
|
||||||
|
|
||||||
|
IRC_DIR="irc"
|
||||||
|
SERVER="leagueh.xyz"
|
||||||
|
ROOM="#librejam"
|
||||||
|
NICK="omnom"
|
||||||
|
NAME="Mx. Omnom"
|
||||||
|
PASS=""
|
||||||
|
SUBMISSIONS_DIR="/GEMINI/DOMAIN/librejam/2022-06/"
|
||||||
|
SUBMITTING_ENDS="2022-06-15 01:00"
|
||||||
|
RATING_ENDS="2022-06-21 23:59"
|
||||||
|
|
||||||
|
connect() {
|
||||||
|
mkdir -p "$IRC_DIR"
|
||||||
|
|
||||||
|
pkill ii
|
||||||
|
ii -i "$IRC_DIR" -s "$SERVER" -e ssl -n "$NICK" -k "$PASS" -f "$NAME" &
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
if test ! -d "$IRC_DIR/$SERVER"; then
|
||||||
|
>&2 echo "Failed to connect to $SERVER! Might want to try 'ii' manually."
|
||||||
|
pkill ii
|
||||||
|
exit 2;
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "/j $ROOM" \
|
||||||
|
> "$IRC_DIR/$SERVER/in"
|
||||||
|
if test ! -e "$IRC_DIR/$SERVER/$ROOM/in"; then
|
||||||
|
>&2 echo "Failed to join $ROOM! Maybe check $IRC_DIR manually?"
|
||||||
|
exit 3;
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
connect
|
||||||
|
|
||||||
|
tail --lines=0 --follow "$IRC_DIR/$SERVER/$ROOM/out" "$IRC_DIR/$SERVER/out" \
|
||||||
|
| librejam_irc_process "$NICK" "$SUBMISSIONS_DIR" "$SUBMITTING_ENDS" "$RATING_ENDS" \
|
||||||
|
> "$IRC_DIR/$SERVER/$ROOM/in"
|
||||||
|
|
||||||
|
# If ii's disconnected, let's take a pause before restarting.
|
||||||
|
sleep 5;
|
||||||
|
done
|
|
@ -0,0 +1,345 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
|
||||||
|
# Name: librejam_irc_process
|
||||||
|
# Desc: Part of a game-jam chatbot. Processes lines of `ii` output from stdin
|
||||||
|
# as chat commands. Outputs text to be sent to the chatroom.
|
||||||
|
# Should probably not be run manually, but instead by librejam_irc.
|
||||||
|
# Reqs: librejam_gemini
|
||||||
|
# Date: 2022-03-30
|
||||||
|
#―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
|
||||||
|
|
||||||
|
line_date() {
|
||||||
|
sed 's% .*%%'
|
||||||
|
}
|
||||||
|
|
||||||
|
line_sender() {
|
||||||
|
line_sanitize \
|
||||||
|
| awk '{print $3}' \
|
||||||
|
| tr -d '<>'
|
||||||
|
}
|
||||||
|
|
||||||
|
line_message() {
|
||||||
|
line_sanitize \
|
||||||
|
| after_column 3
|
||||||
|
}
|
||||||
|
|
||||||
|
line_command() {
|
||||||
|
line_message \
|
||||||
|
| awk '{print $1}' \
|
||||||
|
| grep '^!'
|
||||||
|
}
|
||||||
|
|
||||||
|
line_args() {
|
||||||
|
line_message \
|
||||||
|
| after_column 1
|
||||||
|
}
|
||||||
|
|
||||||
|
line_sanitize() {
|
||||||
|
tr -d '$`{}^%\\'
|
||||||
|
}
|
||||||
|
|
||||||
|
after_column() {
|
||||||
|
local column_no="$1"
|
||||||
|
cut -sd ' ' -f "$((column_no+1))"-
|
||||||
|
}
|
||||||
|
|
||||||
|
ensure_file() {
|
||||||
|
local path="$1"
|
||||||
|
touch "$path"
|
||||||
|
if test ! -e "$path"; then
|
||||||
|
>&2 echo "${path} cannot be created; do you have write permission for this directory?"
|
||||||
|
return 3
|
||||||
|
elif test ! -w "$path" -o ! -r "$path"; then
|
||||||
|
>&2 echo "${path} is either not readable or not writible-- please check your permissions."
|
||||||
|
return 3
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
ensure_directory() {
|
||||||
|
local path="$1"
|
||||||
|
mkdir -p "$path"
|
||||||
|
if test ! -d "$path"; then
|
||||||
|
>&2 echo "$path isn't an accessible directory."
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
remove_line() {
|
||||||
|
local path="$1"
|
||||||
|
local line="$2"
|
||||||
|
local tmp="$(mktemp)"
|
||||||
|
|
||||||
|
grep -v "$line" "$path" \
|
||||||
|
> "$tmp"
|
||||||
|
|
||||||
|
cat "$tmp" \
|
||||||
|
> "$path"
|
||||||
|
|
||||||
|
echo "$line" \
|
||||||
|
>> "$path.old"
|
||||||
|
}
|
||||||
|
|
||||||
|
sanitize() {
|
||||||
|
sed 's% %-%g' \
|
||||||
|
| tr 'A-Z' 'a-z' \
|
||||||
|
| sed 's% $%%'
|
||||||
|
}
|
||||||
|
|
||||||
|
init_gemini() {
|
||||||
|
local sender="$1"; local url="$2"; local branch="$3"; local name="$4"
|
||||||
|
local outname="$(echo "$name" | sanitize)"
|
||||||
|
|
||||||
|
librejam_gemini "$sender" "$url" "$branch" "$name" "$SUBMISSIONS_DIR" \
|
||||||
|
"$ratings_path" \
|
||||||
|
> "$SUBMISSIONS_DIR/${outname}/${outname}.gmi"
|
||||||
|
}
|
||||||
|
|
||||||
|
update_gemini() {
|
||||||
|
local sender="$1"; local url="$2"; local branch="$3"; local name="$4"
|
||||||
|
local ratings_path="$5"
|
||||||
|
local outname="$(echo "$name" | sanitize)"
|
||||||
|
ensure_directory "$SUBMISSIONS_DIR/${outname}/"
|
||||||
|
ensure_directory "$(dirname "$ratings_path")"
|
||||||
|
|
||||||
|
librejam_gemini "$sender" "$url" "$branch" "$name" "$SUBMISSIONS_DIR" \
|
||||||
|
"$ratings_path" \
|
||||||
|
> "$SUBMISSIONS_DIR/${outname}/${outname}.gmi"
|
||||||
|
case "$?" in
|
||||||
|
0) return 0 ;;
|
||||||
|
1) echo "$sender: I had trouble cloning your git repo― did you give me the right URL?" ;;
|
||||||
|
2) echo "$sender: Couldn't switch to the $branch branch― does $branch even exist?" ;;
|
||||||
|
3) echo "$sender: Couldn't download the archive― did you give the right URL?" ;;
|
||||||
|
esac
|
||||||
|
return 2
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HELP_SUBMIT="!submit <url> [-b branch] <name>
|
||||||
|
. Submit a Librejam entry, either with a Git repository or archive over FTP/HTTP/etc.
|
||||||
|
. If submitting a Git repository, you must specify the branch with the -b
|
||||||
|
. argument. You can update your submission until the jam ends by re-running
|
||||||
|
. this command."
|
||||||
|
submit_cmd() {
|
||||||
|
local args="$1"; local sender="$2"
|
||||||
|
local entries="$SUBMISSIONS_DIR/entries.txt"
|
||||||
|
local url="$(echo "$args" | awk '{print $1}')"
|
||||||
|
local branch="$(echo "$args" | awk '{print $3}')"
|
||||||
|
local name="$(echo "$args" | after_column 3)"
|
||||||
|
|
||||||
|
if test ! "$(echo "$args" | awk '{print $2}')" = "-b"; then
|
||||||
|
branch=":curl"
|
||||||
|
name="$(echo "$args" | after_column 1)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
ensure_file "$entries"
|
||||||
|
ensure_file "$entries.old"
|
||||||
|
if test "$SUBMITTING_ENDS" -le "$(date +%s)"; then
|
||||||
|
echo "$sender: Sorry, but the time for submissions is over!"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Just in case they've already submitted
|
||||||
|
local prev_entry="$(grep "^$sender" "$entries")"
|
||||||
|
|
||||||
|
if test -z "$prev_entry" -a -z "$name" -o -z "$url"; then
|
||||||
|
echo "$sender: Please provide all arguments to submit!"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If they've already submitted, replace empty args with implied values
|
||||||
|
if test -z "$name" -a -n "$prev_entry"; then
|
||||||
|
name="$(echo "$prev_entry" | after_column 3)"
|
||||||
|
fi
|
||||||
|
if test -z "$branch" -a -n "$prev_entry"; then
|
||||||
|
branch="$(echo "$prev_entry" | awk '{print $3}')"
|
||||||
|
fi
|
||||||
|
if test -z "$url" -a -n "$prev_entry"; then
|
||||||
|
url="$(echo "$prev_entry" | awk '{print $2}')"
|
||||||
|
fi
|
||||||
|
|
||||||
|
submit_game "$sender" "$prev_entry" "$url" "$branch" "$name"
|
||||||
|
}
|
||||||
|
|
||||||
|
submit_game() {
|
||||||
|
local sender="$1"; local prev_entry="$2"
|
||||||
|
local url="$3"; local branch="$4"; local name="$5"
|
||||||
|
local entries="$SUBMISSIONS_DIR/entries.txt"
|
||||||
|
local outname="$(echo "$name" | sanitize)"
|
||||||
|
|
||||||
|
update_gemini "$sender" "$url" "$branch" "$name"
|
||||||
|
|
||||||
|
if test "$?" -eq 0; then
|
||||||
|
# Remove previous entry, if necessary
|
||||||
|
if test -n "$prev_entry"; then
|
||||||
|
remove_line "$entries" "$prev_entry"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$sender $url $branch $name" \
|
||||||
|
>> "$entries"
|
||||||
|
if test "$branch" = ":curl"; then
|
||||||
|
echo "$sender: $name has been submitted from archive!"
|
||||||
|
else
|
||||||
|
echo "$sender: $name has been submitted from git!"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HELP_RATE="!rate <index> <1-10> [comment]
|
||||||
|
. Submit your rating on a given game, with an optional comment. If you rate
|
||||||
|
. a single game multiple times, the latest rating will be used."
|
||||||
|
rate_cmd() {
|
||||||
|
local args="$1"; local sender="$2"
|
||||||
|
local id="$(echo "$args" | awk '{print $1}')"
|
||||||
|
local rating="$(echo "$args" | awk '{print $2}')"
|
||||||
|
local comment="$(echo "$args" | after_column 2)"
|
||||||
|
local entries="$SUBMISSIONS_DIR/entries.txt"
|
||||||
|
|
||||||
|
local now="$(date +%s)"
|
||||||
|
if test "$now" -le "$SUBMITTING_ENDS" -o "$now" -gt "$RATING_ENDS"; then
|
||||||
|
echo "$sender: Sorry, it's not time to rate!"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
if test "$rating" -lt 1 -o "$rating" -gt 10; then
|
||||||
|
echo "$sender: That's an invalid rating, sorry!"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
local entry_count="$(wc -l "$entries" | awk '{print $1}')"
|
||||||
|
if test "$id" -lt 1 -o "$id" -gt "$entry_count"; then
|
||||||
|
echo "$sender: That's… that's not an ID. Try below $entry_count."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local entry="$(awk 'NR=='"$id" "$entries")"
|
||||||
|
local outname="$(echo "$entry" | after_column 3 | sanitize)"
|
||||||
|
local ratings="$SUBMISSIONS_DIR/${outname}/ratings.txt"
|
||||||
|
ensure_directory "$(dirname "$ratings")"
|
||||||
|
ensure_file "$ratings"
|
||||||
|
|
||||||
|
if test "$sender" = "$(echo "$entry" | awk '{print $1}')"; then
|
||||||
|
echo "$sender: … You can't rate your own game! xD"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local prev_rating="$(grep "^$sender" "$ratings" | head -1)"
|
||||||
|
if test -n "$prev_rating"; then
|
||||||
|
remove_line "$ratings" "$prev_rating"
|
||||||
|
fi
|
||||||
|
echo "$sender $rating $comment" \
|
||||||
|
>> "$ratings"
|
||||||
|
|
||||||
|
echo "$sender: Rating accepted!"
|
||||||
|
|
||||||
|
update_gemini "$(echo "$entry" | awk '{print $1}')" \
|
||||||
|
"$(echo "$entry" | awk '{print $2}')" \
|
||||||
|
"$(echo "$entry" | awk '{print $3}')" \
|
||||||
|
"$(echo "$entry" | after_column 3)" \
|
||||||
|
"$ratings"
|
||||||
|
}
|
||||||
|
|
||||||
|
HELP_LIST="!list
|
||||||
|
. List all games submitted for the jam."
|
||||||
|
list_cmd() {
|
||||||
|
local entries="$SUBMISSIONS_DIR/entries.txt"
|
||||||
|
|
||||||
|
local index="1"
|
||||||
|
while read entry; do
|
||||||
|
if test -n "$entry"; then
|
||||||
|
local name="$(echo "$entry" | after_column 3)"
|
||||||
|
echo "$entry" \
|
||||||
|
| awk '{ printf("[%s] %s | By %s | %s\n",
|
||||||
|
'"$index"', "'"$name"'", $1, $2) }'
|
||||||
|
index="$((index + 1))"
|
||||||
|
fi
|
||||||
|
done < "$entries"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HELP_ABOUT="!about
|
||||||
|
. … you could just try the command. It won't bite."
|
||||||
|
about_cmd() {
|
||||||
|
local sender="$2"
|
||||||
|
|
||||||
|
echo "$sender: I'm a bot made for Librejam (gemini://leagueh.xyz/en/librejam)."
|
||||||
|
echo "My sauce is at https://github.com/jadedctrl/librejam-omnom/"
|
||||||
|
echo "Current submissions are at gemini://xwx.moe/librejam/"
|
||||||
|
echo "Submissions end at: $(date -ud @"$SUBMITTING_ENDS")"
|
||||||
|
echo "Rating ends at: $(date -ud @"$RATING_ENDS")"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
HELP_HELP="!help <command>
|
||||||
|
. … do I really have to explain this one? <o<\""
|
||||||
|
help_cmd() {
|
||||||
|
local args="$1"
|
||||||
|
local sender="$2"
|
||||||
|
|
||||||
|
case "$args" in
|
||||||
|
*submit*)
|
||||||
|
echo "$sender: $HELP_SUBMIT";;
|
||||||
|
*rate*)
|
||||||
|
echo "$sender: $HELP_RATE";;
|
||||||
|
*list*)
|
||||||
|
echo "$sender: $HELP_LIST";;
|
||||||
|
*about*)
|
||||||
|
echo "$sender: $HELP_ABOUT";;
|
||||||
|
*help*)
|
||||||
|
echo "$sender: $HELP_HELP";;
|
||||||
|
*)
|
||||||
|
echo "$sender: $HELP_HELP" | head -1
|
||||||
|
echo "$HELP_ABOUT" | head -1
|
||||||
|
echo "$HELP_RATE" | head -1
|
||||||
|
echo "$HELP_SUBMIT" | head -1
|
||||||
|
echo "$HELP_LIST" | head -1 ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
process_line() {
|
||||||
|
local line="$1"
|
||||||
|
local sender="$(echo "$line" | line_sender)"
|
||||||
|
local line_args="$(echo "$line" | line_args)"
|
||||||
|
local command="$(echo "$line" | line_command)"
|
||||||
|
if test "$?" -ne 0; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$command" in
|
||||||
|
"!submit")
|
||||||
|
submit_cmd "$line_args" "$sender" ;;
|
||||||
|
"!rate")
|
||||||
|
rate_cmd "$line_args" "$sender" ;;
|
||||||
|
"!list")
|
||||||
|
list_cmd "$line_args" "$sender" ;;
|
||||||
|
"!uwu")
|
||||||
|
echo "$sender: ur sweet <3" ;;
|
||||||
|
"!about")
|
||||||
|
about_cmd "$line_args" "$sender" ;;
|
||||||
|
"!help")
|
||||||
|
help_cmd "$line_args" "$sender" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NICK="$1"
|
||||||
|
SUBMISSIONS_DIR="$2"
|
||||||
|
SUBMITTING_ENDS="$(date -ud "$3" +%s)"
|
||||||
|
RATING_ENDS="$(date -ud "$4" +%s)"
|
||||||
|
if test -z "$SUBMISSIONS_DIR" -o -z "$SUBMITTING_ENDS" -o -z "$RATING_ENDS"
|
||||||
|
then
|
||||||
|
>&2 echo "Usage: $(basename "$0") nick entry_dir submit_deadline rate_deadline"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
ensure_directory "$SUBMISSIONS_DIR"
|
||||||
|
|
||||||
|
while read line; do
|
||||||
|
if echo "$line" | grep "^....-..-.. ..:.. Closing link" >/dev/null; then
|
||||||
|
>&2 echo "ii has disconnected!"
|
||||||
|
exit 2;
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$line" | grep "<$NICK>" > /dev/null
|
||||||
|
if test "$?" -ne 0; then
|
||||||
|
process_line "$line"
|
||||||
|
fi
|
||||||
|
done
|
Reference in New Issue