[enh] adds a plugin installer
This commit is contained in:
parent
0e2af77e47
commit
0f7709e83b
@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
domain=maubot.example.com
|
||||
server_address="https://$domain"
|
||||
home_server=matrix.com
|
||||
install_dir=/opt/maubot
|
||||
unix_user=www-data
|
||||
|
93
plugins-install.sh
Executable file
93
plugins-install.sh
Executable file
@ -0,0 +1,93 @@
|
||||
#!/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
|
||||
# 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
|
Loading…
Reference in New Issue
Block a user