mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-20 04:14:59 +00:00
refactor: Move check functions to top level of script
This commit is contained in:
parent
6638959d66
commit
ee4508af03
1 changed files with 68 additions and 64 deletions
|
@ -10,6 +10,74 @@ import sys
|
|||
from packaging import version
|
||||
|
||||
|
||||
# Function to check if we are on the main branch
|
||||
def check_branch():
|
||||
branch = subprocess.run(
|
||||
["git", "rev-parse", "--abbrev-ref", "HEAD"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
if branch != "main":
|
||||
print("Error: Not on the main branch.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# Function to check if the working directory is clean
|
||||
def check_working_directory_clean():
|
||||
status = subprocess.run(
|
||||
["git", "status", "--porcelain"], capture_output=True, text=True
|
||||
).stdout
|
||||
if status:
|
||||
print("Error: Working directory is not clean.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# Function to fetch the latest changes and check if the main branch is up to date
|
||||
def check_main_branch_up_to_date():
|
||||
subprocess.run(["git", "fetch", "origin"], check=True)
|
||||
local_main = subprocess.run(
|
||||
["git", "rev-parse", "main"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
print(f"Local main commit hash: {local_main}")
|
||||
origin_main = subprocess.run(
|
||||
["git", "rev-parse", "origin/main"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
print(f"Origin main commit hash: {origin_main}")
|
||||
if local_main != origin_main:
|
||||
local_date = subprocess.run(
|
||||
["git", "show", "-s", "--format=%ci", "main"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
origin_date = subprocess.run(
|
||||
["git", "show", "-s", "--format=%ci", "origin/main"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
local_date = datetime.datetime.strptime(local_date, "%Y-%m-%d %H:%M:%S %z")
|
||||
origin_date = datetime.datetime.strptime(origin_date, "%Y-%m-%d %H:%M:%S %z")
|
||||
if local_date < origin_date:
|
||||
print(
|
||||
"Error: The local main branch is behind origin/main. Please pull the latest"
|
||||
" changes."
|
||||
)
|
||||
elif local_date > origin_date:
|
||||
print(
|
||||
"Error: The origin/main branch is behind the local main branch. Please push"
|
||||
" your changes."
|
||||
)
|
||||
else:
|
||||
print("Error: The main branch and origin/main have diverged.")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# Function to check if we can push to the origin repository
|
||||
def check_push_access():
|
||||
print("Checking push access to origin repository...")
|
||||
result = subprocess.run(
|
||||
["git", "push", "--dry-run", "origin"], capture_output=True, text=True
|
||||
)
|
||||
if result.returncode != 0:
|
||||
print("Error: Cannot push to origin repository.")
|
||||
print(result.stderr)
|
||||
sys.exit(1)
|
||||
print("Push access to origin repository confirmed.")
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="Bump version")
|
||||
parser.add_argument("new_version", help="New version in x.y.z format")
|
||||
|
@ -17,70 +85,6 @@ def main():
|
|||
"--dry-run", action="store_true", help="Print each step without actually executing them"
|
||||
)
|
||||
|
||||
# Function to check if we are on the main branch
|
||||
def check_branch():
|
||||
branch = subprocess.run(
|
||||
["git", "rev-parse", "--abbrev-ref", "HEAD"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
if branch != "main":
|
||||
print("Error: Not on the main branch.")
|
||||
sys.exit(1)
|
||||
|
||||
# Function to check if the working directory is clean
|
||||
def check_working_directory_clean():
|
||||
status = subprocess.run(
|
||||
["git", "status", "--porcelain"], capture_output=True, text=True
|
||||
).stdout
|
||||
if status:
|
||||
print("Error: Working directory is not clean.")
|
||||
sys.exit(1)
|
||||
|
||||
# Function to fetch the latest changes and check if the main branch is up to date
|
||||
def check_main_branch_up_to_date():
|
||||
subprocess.run(["git", "fetch", "origin"], check=True)
|
||||
local_main = subprocess.run(
|
||||
["git", "rev-parse", "main"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
print(f"Local main commit hash: {local_main}")
|
||||
origin_main = subprocess.run(
|
||||
["git", "rev-parse", "origin/main"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
print(f"Origin main commit hash: {origin_main}")
|
||||
if local_main != origin_main:
|
||||
local_date = subprocess.run(
|
||||
["git", "show", "-s", "--format=%ci", "main"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
origin_date = subprocess.run(
|
||||
["git", "show", "-s", "--format=%ci", "origin/main"], capture_output=True, text=True
|
||||
).stdout.strip()
|
||||
local_date = datetime.datetime.strptime(local_date, "%Y-%m-%d %H:%M:%S %z")
|
||||
origin_date = datetime.datetime.strptime(origin_date, "%Y-%m-%d %H:%M:%S %z")
|
||||
if local_date < origin_date:
|
||||
print(
|
||||
"Error: The local main branch is behind origin/main. Please pull the latest"
|
||||
" changes."
|
||||
)
|
||||
elif local_date > origin_date:
|
||||
print(
|
||||
"Error: The origin/main branch is behind the local main branch. Please push"
|
||||
" your changes."
|
||||
)
|
||||
else:
|
||||
print("Error: The main branch and origin/main have diverged.")
|
||||
sys.exit(1)
|
||||
|
||||
# Function to check if we can push to the origin repository
|
||||
def check_push_access():
|
||||
print("Checking push access to origin repository...")
|
||||
result = subprocess.run(
|
||||
["git", "push", "--dry-run", "origin"], capture_output=True, text=True
|
||||
)
|
||||
if result.returncode != 0:
|
||||
print("Error: Cannot push to origin repository.")
|
||||
print(result.stderr)
|
||||
sys.exit(1)
|
||||
print("Push access to origin repository confirmed.")
|
||||
|
||||
args = parser.parse_args()
|
||||
dry_run = args.dry_run
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue