forked from yasirarism/MissKatyPyro
-
Notifications
You must be signed in to change notification settings - Fork 0
/
update.py
67 lines (58 loc) · 2.01 KB
/
update.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import os
import subprocess
from logging import INFO, StreamHandler, basicConfig, getLogger, handlers
import dotenv
import requests
from git import Repo
if os.path.exists("MissKatyLogs.txt"):
with open("MissKatyLogs.txt", "r+") as f:
f.truncate(0)
basicConfig(
level=INFO,
format="[%(levelname)s] - [%(asctime)s - %(name)s - %(message)s] -> [%(module)s:%(lineno)d]",
datefmt="%d-%b-%y %H:%M:%S",
handlers=[
handlers.RotatingFileHandler("MissKatyLogs.txt", mode="w+", maxBytes=5242880, backupCount=1),
StreamHandler(),
],
)
LOGGER = getLogger("MissKaty")
ENV_URL = os.environ.get("ENV_URL")
try:
if len(ENV_URL) == 0:
raise TypeError
try:
res = requests.get(ENV_URL)
if res.status_code == 200:
with open("config.env", "wb+") as f:
f.write(res.content)
else:
LOGGER.error(f"config.env err: {res.status_code}")
except Exception as e:
LOGGER.error(f"ENV_URL: {e}")
except:
pass
dotenv.load_dotenv("config.env", override=True)
UPSTREAM_REPO_URL = os.environ.get("UPSTREAM_REPO_URL")
UPSTREAM_REPO_BRANCH = os.environ.get("UPSTREAM_REPO_BRANCH")
if all([UPSTREAM_REPO_URL, UPSTREAM_REPO_BRANCH]):
if os.path.exists(".git"):
subprocess.run(["rm", "-rf", ".git"], check=True)
try:
repo = Repo.init()
origin = repo.create_remote("upstream", UPSTREAM_REPO_URL)
origin.fetch()
repo.create_head(UPSTREAM_REPO_BRANCH, origin.refs[UPSTREAM_REPO_BRANCH])
repo.heads[UPSTREAM_REPO_BRANCH].set_tracking_branch(
origin.refs[UPSTREAM_REPO_BRANCH]
)
repo.heads[UPSTREAM_REPO_BRANCH].checkout(True)
ups_rem = repo.remote("upstream")
ups_rem.fetch(UPSTREAM_REPO_BRANCH)
LOGGER.info(f"Successfully update with latest branch > {UPSTREAM_REPO_BRANCH}")
except Exception as e:
LOGGER.error(e)
else:
LOGGER.warning(
"UPSTREAM_REPO_URL or UPSTREAM_REPO_BRANCH is not defined, Skipping auto update"
)