feat: starter
Signed-off-by: xtex <xtexchooser@duck.com>
This commit is contained in:
parent
33609b5bc8
commit
ecfb696097
|
@ -6,5 +6,5 @@ insert_final_newline = true
|
|||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[/start]
|
||||
[{/start,/config/start.sh}]
|
||||
end_of_line = lf
|
||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,6 +2,7 @@
|
|||
__pycache__/
|
||||
config/*.cfg
|
||||
config/*.toml
|
||||
config/*.sh
|
||||
.idea
|
||||
.vscode
|
||||
assets/mcversion.txt
|
||||
|
|
|
@ -251,7 +251,15 @@ async def _(msg: Bot.MessageSession):
|
|||
|
||||
|
||||
if Info.subprocess:
|
||||
rst = module('restart', developers=['OasisAkari'], required_superuser=True, base=True)
|
||||
rst = module(
|
||||
'restart',
|
||||
alias=[
|
||||
'update',
|
||||
'update&restart',
|
||||
'u&r'],
|
||||
developers=['OasisAkari'],
|
||||
required_superuser=True,
|
||||
base=True)
|
||||
|
||||
def restart():
|
||||
sys.exit(233)
|
||||
|
@ -293,55 +301,6 @@ if Info.subprocess:
|
|||
write_version_cache(msg)
|
||||
restart()
|
||||
|
||||
upd = module('update', developers=['OasisAkari'], required_superuser=True, base=True)
|
||||
|
||||
|
||||
def pull_repo():
|
||||
return os.popen('git pull', 'r').read()[:-1]
|
||||
|
||||
|
||||
def update_dependencies():
|
||||
poetry_install = os.popen('poetry install').read()[:-1]
|
||||
if poetry_install != '':
|
||||
return poetry_install
|
||||
pip_install = os.popen('pip install -r requirements.txt').read()[:-1]
|
||||
if len(pip_install) > 500:
|
||||
return '...' + pip_install[-500:]
|
||||
return
|
||||
|
||||
|
||||
@upd.handle()
|
||||
async def update_bot(msg: Bot.MessageSession):
|
||||
await msg.send_message(msg.locale.t("core.message.confirm"))
|
||||
confirm = await msg.wait_confirm()
|
||||
if confirm:
|
||||
pull_repo_result = pull_repo()
|
||||
if pull_repo_result != '':
|
||||
await msg.send_message(pull_repo_result)
|
||||
await msg.send_message(update_dependencies())
|
||||
else:
|
||||
await msg.finish(msg.locale.t("core.message.update.failed"))
|
||||
|
||||
|
||||
if Info.subprocess:
|
||||
upds = module('update&restart', developers=['OasisAkari'], required_superuser=True, alias='u&r', base=True)
|
||||
|
||||
@upds.handle()
|
||||
async def update_and_restart_bot(msg: Bot.MessageSession):
|
||||
await msg.send_message(msg.locale.t("core.message.confirm"))
|
||||
confirm = await msg.wait_confirm()
|
||||
if confirm:
|
||||
restart_time.append(datetime.now().timestamp())
|
||||
await wait_for_restart(msg)
|
||||
write_version_cache(msg)
|
||||
pull_repo_result = pull_repo()
|
||||
if pull_repo_result != '':
|
||||
await msg.send_message(pull_repo_result)
|
||||
await msg.send_message(update_dependencies())
|
||||
else:
|
||||
await msg.send_message(msg.locale.t("core.message.update.failed"))
|
||||
restart()
|
||||
|
||||
if Bot.FetchTarget.name == 'QQ':
|
||||
resume = module('resume', developers=['OasisAkari'], required_base_superuser=True)
|
||||
|
||||
|
|
47
start
47
start
|
@ -1,3 +1,44 @@
|
|||
#!/usr/bin/env sh
|
||||
export PYTHONPATH=$PYTHONPATH:$(pwd)
|
||||
poetry run python bot.py
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
[[ "$VIRTUAL_ENV" == "" ]] && source venv/bin/activate
|
||||
|
||||
source config/start.sh
|
||||
|
||||
while true; do
|
||||
git fetch origin master
|
||||
git reset --hard origin/master
|
||||
|
||||
curl -sS "$HEALTHCHECKS_URL"
|
||||
timeout --preserve-status --signal=ABRT --verbose --kill-after=5s 5m pip3 install -r requirements.txt
|
||||
timeout --preserve-status --signal=QUIT --verbose --kill-after=30s 1h python3 -m bots.matrix.bot
|
||||
|
||||
echo "Auto merging upstream"
|
||||
headCommit="$(git rev-parse HEAD)"
|
||||
curl -sS "$HEALTHCHECKS_URL_AUTOMERGE/start"
|
||||
git pull --all --prune
|
||||
git fetch https://github.com/Teahouse-Studios/akari-bot.git master
|
||||
git merge \
|
||||
-c user.email="bot-exozyme-akaribot@xtexx.eu.org" \
|
||||
-c user.name="Akari Bot @ exozy.me" \
|
||||
--no-edit -m "Merge upstream" \
|
||||
--signoff --no-stat --no-squash \
|
||||
MERGE_HEAD
|
||||
if [[ -e ".git/MERGE_HEAD" ]]; then
|
||||
echo "Failed to auto-merge"
|
||||
git merge --abort
|
||||
fi
|
||||
if [[ "$headCommit" != "$(git rev-parse HEAD)" ]]; then
|
||||
echo "Testing auto-merged code"
|
||||
{
|
||||
set -xe
|
||||
timeout --preserve-status --signal=ABRT --verbose --kill-after=5s 3m pip3 install -r requirements.txt
|
||||
timeout --preserve-status --signal=QUIT --verbose --kill-after=5s 1m python3 -m bots.matrix.bot
|
||||
git push
|
||||
}
|
||||
curl -sS --retry 3 "$HEALTHCHECKS_URL_AUTOMERGE/$?"
|
||||
else
|
||||
echo "Nothing is merged"
|
||||
curl -sS --retry 3 "$HEALTHCHECKS_URL_AUTOMERGE"
|
||||
fi
|
||||
done
|
||||
|
|
Reference in a new issue