43 lines
1 KiB
Python
43 lines
1 KiB
Python
from git import Repo
|
|
|
|
|
|
from util import hook, web
|
|
|
|
@hook.command
|
|
def update(inp, bot=None):
|
|
repo = Repo()
|
|
git = repo.git
|
|
try:
|
|
pull = git.pull()
|
|
except Exception as e:
|
|
return e
|
|
if "\n" in pull:
|
|
return web.haste(pull)
|
|
else:
|
|
return pull
|
|
|
|
|
|
@hook.command
|
|
def version(inp, bot=None):
|
|
repo = Repo()
|
|
|
|
# get origin and fetch it
|
|
origin = repo.remotes.origin
|
|
info = origin.fetch()
|
|
|
|
# get objects
|
|
head = repo.head
|
|
origin_head = info[0]
|
|
current_commit = head.commit
|
|
remote_commit = origin_head.commit
|
|
|
|
if current_commit == remote_commit:
|
|
in_sync = True
|
|
else:
|
|
in_sync = False
|
|
|
|
# output
|
|
return "Local \x02{}\x02 is at commit \x02{}\x02, remote \x02{}\x02 is at commit \x02{}\x02." \
|
|
" You {} running the latest version.".format(head, current_commit.name_rev[:7],
|
|
origin_head, remote_commit.name_rev[:7],
|
|
"are" if in_sync else "are not")
|