Initial commit.
This commit is contained in:
commit
35fa143b20
14
LICENSE
Normal file
14
LICENSE
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||||
|
Version 2, December 2004
|
||||||
|
|
||||||
|
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||||
|
|
||||||
|
Everyone is permitted to copy and distribute verbatim or modified
|
||||||
|
copies of this license document, and changing it is allowed as long
|
||||||
|
as the name is changed.
|
||||||
|
|
||||||
|
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||||
|
|
109
tojam
Executable file
109
tojam
Executable file
@ -0,0 +1,109 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
|
||||||
|
# Dialog accessibility
|
||||||
|
export DIALOGOPTS='--no-lines --visit-items'
|
||||||
|
|
||||||
|
|
||||||
|
# Functions
|
||||||
|
|
||||||
|
help() {
|
||||||
|
echo "${0##*/}"
|
||||||
|
echo -e "Released under the terms of the WTFPL License: http://www.wtfpl.net\n"
|
||||||
|
echo -e "Usage:\n"
|
||||||
|
echo "With no arguments, open recent servers list."
|
||||||
|
for i in "${!command[@]}" ; do
|
||||||
|
echo "-${i/:/ <parameter>}: ${command[${i}]}"
|
||||||
|
done | sort
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Array of command line arguments
|
||||||
|
declare -A command=(
|
||||||
|
[c]="Configure ${0##*/}."
|
||||||
|
[h]="This help screen."
|
||||||
|
[T]="Dedication."
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
add_server() {
|
||||||
|
echo "Add server coming soon"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
settings() {
|
||||||
|
echo "Settings coming soon"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Convert the keys of the associative array to a format usable by getopts
|
||||||
|
args="${!command[*]}"
|
||||||
|
args="${args//[[:space:]]/}"
|
||||||
|
while getopts "${args}" i ; do
|
||||||
|
case "$i" in
|
||||||
|
c) echo "Coming soon" ;;
|
||||||
|
h) help ;;
|
||||||
|
T)
|
||||||
|
echo "For Tony, because he's awesome!"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Configuration stuff
|
||||||
|
config="${XDG_CONFIG_HOME:-${HOME}/.config}/tojam"
|
||||||
|
sessiondir="${HOME}/tojam-sessions"
|
||||||
|
mkdir -p "${config}"
|
||||||
|
mkdir -p "${sessiondir}"
|
||||||
|
|
||||||
|
if ! [[ -r "${config}/config" ]]; then
|
||||||
|
# Write initial config file
|
||||||
|
echo 'anonymous="true"' >> "${config}/config"
|
||||||
|
echo 'soundDriver="jack"' >> "${config}/config"
|
||||||
|
echo "userName='Tojam$(date '+%S')'" >> "${config}/config"
|
||||||
|
fi
|
||||||
|
source "${config}/config"
|
||||||
|
|
||||||
|
# Fix up username if anonymous is true
|
||||||
|
if [[ "${anonymous}" == "true" ]]; then
|
||||||
|
userName="anonymous:${userName}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
declare -A servers=(
|
||||||
|
[Shark Tank]="sharktank.sytes.net:2050"
|
||||||
|
[Ninjamer 1]="ninjamer.com"
|
||||||
|
[Ninjamer 2]="ninjamer.com:2050"
|
||||||
|
[Ninjamer 3]="ninjamer.com:2051"
|
||||||
|
[Ninjamer 4]="ninjamer.com:2052"
|
||||||
|
$( [[ -r "${config}/servers.conf" ]] && source "${config}/servers.conf")
|
||||||
|
)
|
||||||
|
|
||||||
|
# Server menu
|
||||||
|
declare -a menuList
|
||||||
|
for i in "${!servers[@]}" ; do
|
||||||
|
menuList+=("${servers[$i]}" "${i}")
|
||||||
|
done
|
||||||
|
|
||||||
|
server="$(dialog --clear \
|
||||||
|
--backtitle "Tojam" \
|
||||||
|
--no-tags \
|
||||||
|
--extra-button \
|
||||||
|
--extra-label "Add Server" \
|
||||||
|
--ok-label "Connect" \
|
||||||
|
--cancel-label "Exit" \
|
||||||
|
--help-button \
|
||||||
|
--help-label "Settings" \
|
||||||
|
--menu "Select a Ninjam server" -1 -1 -1 "${menuList[@]}" --stdout)"
|
||||||
|
menuCode=$?
|
||||||
|
case ${menuCode} in
|
||||||
|
1) exit 0;;
|
||||||
|
2) settings;;
|
||||||
|
3) add_server;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ninjam="$(command -v cninjam 2> /dev/null)"
|
||||||
|
[[ ${#ninjam} -le 3 ]] && { echo "Could not find cninjam."; exit 1; }
|
||||||
|
$ninjam "${server}" -user "${userName}" -${soundDriver} -sessiondir "${sessiondir}"
|
Loading…
Reference in New Issue
Block a user