| | import subprocess |
| | from pyrogram import Client, filters |
| | from Devine import app |
| | from config import OWNER_ID |
| |
|
| | @app.on_message(filters.command("redeploy") & filters.user(OWNER_ID)) |
| | async def redeploy(client, message): |
| | msg = await message.reply("Starting bot redeployment process...") |
| |
|
| | try: |
| | await msg.edit("Pulling the latest changes from GitHub...") |
| | pull_process = subprocess.run( |
| | ["git", "pull", "origin", "main"], |
| | capture_output=True, text=True |
| | ) |
| | if pull_process.returncode != 0: |
| | raise Exception(f"Git pull failed: {pull_process.stderr}") |
| |
|
| | await msg.edit("Deploying changes to Heroku...") |
| | deploy_process = subprocess.run( |
| | ["heroku", "git:remote", "-a", "your-heroku-app-name"], |
| | capture_output=True, text=True |
| | ) |
| | if deploy_process.returncode != 0: |
| | raise Exception(f"Heroku remote setup failed: {deploy_process.stderr}") |
| |
|
| | deploy_process = subprocess.run( |
| | ["git", "push", "heroku", "main"], |
| | capture_output=True, text=True |
| | ) |
| | if deploy_process.returncode != 0: |
| | raise Exception(f"Git push to Heroku failed: {deploy_process.stderr}") |
| |
|
| | await msg.edit("Restarting the Heroku app...") |
| | restart_process = subprocess.run( |
| | ["heroku", "ps:restart", "--app", "your-heroku-app-name"], |
| | capture_output=True, text=True |
| | ) |
| | if restart_process.returncode != 0: |
| | raise Exception(f"Heroku restart failed: {restart_process.stderr}") |
| |
|
| | await msg.edit("Bot redeployment completed successfully!") |
| |
|
| | except Exception as e: |
| | await msg.edit(f"Error during redeployment: {str(e)}") |
| |
|