mirror of
https://github.com/markqvist/Sideband.git
synced 2025-05-12 11:22:32 -04:00
Restructured repository
This commit is contained in:
parent
46269dd82b
commit
0de4c12c17
274 changed files with 51617 additions and 45 deletions
94
sbapp/kivymd/tools/release/git_commands.py
Normal file
94
sbapp/kivymd/tools/release/git_commands.py
Normal file
|
@ -0,0 +1,94 @@
|
|||
# Copyright (c) 2019-2021 Artem Bulgakov
|
||||
#
|
||||
# This file is distributed under the terms of the same license,
|
||||
# as the Kivy framework.
|
||||
|
||||
import subprocess
|
||||
|
||||
|
||||
def command(cmd: list, capture_output: bool = False) -> str:
|
||||
"""Run system command."""
|
||||
|
||||
print(f"Command: {subprocess.list2cmdline(cmd)}")
|
||||
if capture_output:
|
||||
out = subprocess.check_output(cmd)
|
||||
out = out.decode("utf-8")
|
||||
print(out.strip())
|
||||
return out
|
||||
else:
|
||||
subprocess.check_call(cmd)
|
||||
return ""
|
||||
|
||||
|
||||
def get_previous_version() -> str:
|
||||
"""Returns latest tag in git."""
|
||||
|
||||
command(["git", "checkout", "master"])
|
||||
old_version = command(
|
||||
["git", "describe", "--abbrev=0", "--tags"], capture_output=True
|
||||
)
|
||||
old_version = old_version[:-1] # Remove \n
|
||||
return old_version
|
||||
|
||||
|
||||
def git_clean(ask: bool = True):
|
||||
"""Clean git repository from untracked and changed files."""
|
||||
|
||||
# Check what files will be removed
|
||||
files_to_clean = command(
|
||||
["git", "clean", "-dx", "--force", "--dry-run"], capture_output=True
|
||||
).strip()
|
||||
# Ask before removing
|
||||
if ask and files_to_clean:
|
||||
while True:
|
||||
ans = input("Do you want to remove these files? (yes/no)").lower()
|
||||
if ans == "y" or ans == "yes":
|
||||
break
|
||||
elif ans == "n" or ans == "no":
|
||||
print("git clean is required. Exit")
|
||||
exit(0)
|
||||
|
||||
# Remove all untracked files
|
||||
command(["git", "clean", "-dx", "--force"])
|
||||
command(["git", "reset", "--hard"])
|
||||
|
||||
|
||||
def git_commit(message: str, allow_error: bool = False, add_files: list = None):
|
||||
"""Make commit."""
|
||||
|
||||
add_files = add_files if add_files else ["-A"]
|
||||
command(["git", "add", *add_files])
|
||||
try:
|
||||
command(["git", "commit", "--all", "-m", message])
|
||||
except subprocess.CalledProcessError as e:
|
||||
if not allow_error:
|
||||
raise e
|
||||
|
||||
|
||||
def git_tag(name: str):
|
||||
"""Create tag."""
|
||||
|
||||
command(["git", "tag", name])
|
||||
|
||||
|
||||
def git_push(branches_to_push: list, ask: bool = True, push: bool = False):
|
||||
"""Push all changes."""
|
||||
|
||||
if ask:
|
||||
push = input("Do you want to push changes? (y)") in (
|
||||
"",
|
||||
"y",
|
||||
"yes",
|
||||
)
|
||||
|
||||
cmd = ["git", "push", "--tags", "origin", "master", *branches_to_push]
|
||||
if push:
|
||||
command(cmd)
|
||||
else:
|
||||
print(
|
||||
f"Changes are not pushed. Command for manual pushing: {subprocess.list2cmdline(cmd)}"
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
git_clean(ask=True)
|
Loading…
Add table
Add a link
Reference in a new issue