95 lines
3.8 KiB
Bash
95 lines
3.8 KiB
Bash
#!/bin/bash
|
|
|
|
panic(){ echo -e "$@"; exit 2; }
|
|
info(){ echo -e "\e[0;32m$@\e[0m"; }
|
|
|
|
which zip &>/dev/null || panic "Please install zip and unzip."
|
|
|
|
basePath=$( cd `dirname $BASH_SOURCE[0]` && pwd )
|
|
cd "$basePath"
|
|
|
|
# CONFIG MANAGEMENT
|
|
|
|
# Use a config file
|
|
[[ -f ./config ]] && source ./config
|
|
|
|
# Or set the following variables manually
|
|
# install_dir=/opt/maubot
|
|
# server_address=https://your.maubot.domain
|
|
# maubot_user=maubot
|
|
# maubot_pass=maubot
|
|
|
|
[[ -z "$install_dir" ]] || [[ -z "$maubot_user" ]] || [[ -z "$maubot_pass" ]] && panic "Please set variables"
|
|
|
|
declare -A botList
|
|
botList[https://github.com/maubot/jesaribot]="A simple bot that replies with an image when you say "jesari"."
|
|
botList[https://github.com/maubot/sed]="A bot to do sed-like replacements."
|
|
botList[https://github.com/maubot/factorial]="A bot to calculate unexpected factorials."
|
|
botList[https://github.com/maubot/media]="A bot that replies with the MXC URI of images you send it."
|
|
botList[https://github.com/maubot/dice]="A combined dice rolling and calculator bot."
|
|
botList[https://github.com/maubot/karma]="A user karma tracker bot."
|
|
botList[https://github.com/maubot/xkcd]="A bot to view xkcd comics."
|
|
botList[https://github.com/maubot/echo]="A bot that echoes pings and other stuff."
|
|
botList[https://github.com/maubot/rss]="A bot that posts RSS feed updates to Matrix."
|
|
botList[https://github.com/TomCasavant/RedditMaubot]="A bot that condescendingly corrects a user when they enter an r/subreddit without providing a link to that subreddit"
|
|
botList[https://github.com/TomCasavant/GiphyMaubot]="A bot that generates a gif (from giphy) given search terms"
|
|
botList[https://github.com/jeffcasavant/MaubotTrumpTweet]="A bot that generates a Trump tweet with the given content"
|
|
botList[https://github.com/TomCasavant/PollMaubot]="A bot that will create a simple poll for users in a room"
|
|
botList[https://github.com/dvdgsng/UrbanMaubot]="A bot that fetches definitions from [Urban Dictionary](https://www.urbandictionary.com/)."
|
|
botList[https://github.com/maubot/reminder]="A bot to remind you about things."
|
|
botList[https://github.com/maubot/translate]="A bot to translate words."
|
|
botList[https://github.com/maubot/reactbot]="A bot that responds to messages that match predefined rules."
|
|
botList[https://github.com/maubot/exec]="A bot that executes code."
|
|
botList[https://github.com/maubot/commitstrip]="A bot to view CommitStrips."
|
|
botList[https://github.com/maubot/supportportal]="A bot to manage customer support on Matrix."
|
|
botList[https://github.com/maubot/gitlab]="A GitLab client and webhook receiver."
|
|
botList[https://github.com/maubot/github]="A GitHub client and webhook receiver."
|
|
|
|
install=y
|
|
|
|
while [[ "$install" == "y" ]]; do
|
|
n=0
|
|
unset indexedArray
|
|
declare -A indexedArray
|
|
echo -e "\nAvailable bots:"
|
|
for k in ${!botList[@]}; do
|
|
echo " $n: ${botList[$k]}"
|
|
indexedArray[$n]=$k
|
|
let $(( n++ ))
|
|
done
|
|
echo
|
|
read -e -n 2 -p "Please enter a number or x to stop: " REPLY
|
|
|
|
case $REPLY in
|
|
([0-9]*)
|
|
URL=${indexedArray[$REPLY]}
|
|
[[ -z "$URL" ]] && echo "Invalid choice. Try again." && continue
|
|
zipURL="$URL/archive/master.zip"
|
|
tempDir=$(mktemp -d)
|
|
projectName=$(basename $URL)
|
|
cd "$tempDir"
|
|
info "Downloading file"
|
|
wget -q "$zipURL" &>/dev/null
|
|
info "Converting"
|
|
unzip master.zip &>/dev/null
|
|
cd "$projectName-master"
|
|
zip -r archive * &>/dev/null
|
|
mv archive.zip "$tempDir"
|
|
info "Ready to upload"
|
|
cd "$install_dir"
|
|
read -e -n 1 -i y -p "Do you want to login in maubot [Y/n]? " login
|
|
[[ "n" != ${login:-y} ]] && echo -e "Here are your config credentials: \n Username $maubot_user\n Password $maubot_pass\n Server $server_address\n" && "$install_dir/bin/mbc" login
|
|
"$install_dir/bin/mbc" upload "$tempDir/archive.zip" -s "$server_address"
|
|
|
|
rm -rf "$tempDir"
|
|
;;
|
|
(x)
|
|
install=n
|
|
;;
|
|
(*)
|
|
echo "Unknown choice '$REPLY'. Try again."
|
|
;;
|
|
esac
|
|
|
|
done
|