mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-21 12:55:00 +00:00
aider: Added create_temp_repo
function to create a temporary git repo with copied files and .docs
subdir.
# Context: USER: make a script which takes a dirname on the cmd line. make a tempdir, copy all the files from the dirname into the tempdir copy the .docs subdir into the tempdir, but as `docs` without the leading . make a new git repo in the tempdir using GitPython add all the copied files to the repo, commit with msg "initial" ASSISTANT: I will create a new script called `create_temp_repo.py` in the `scripts` directory. This script will take a directory name as a command-line argument, create a temporary ^C KeyboardInterrupt USER: code it in benchmark.py ASSISTANT: First, let's import the required libraries at the beginning of `scripts/benchmark.py`: ```python scripts/benchmark.py <<<<<<< ORIGINAL ======= import os import shutil import sys from tempfile import TemporaryDirectory from git import Repo >>>>>>> UPDATED ``` Now, let's add a new function called `create_temp_repo` in `scripts/benchmark.py`: ```python scripts/benchmark.py <<<<<<< ORIGINAL ======= def create_temp_repo(dirname): with TemporaryDirectory() as tempdir: # Copy all files from dirname to tempdir for item in os.listdir(dirname): s = os.path.join(dirname, item) d = os.path.join(tempdir, item) if os.path.isdir(s): shutil.copytree(s, d, False, None) else: shutil.copy2(s, d) # Copy .docs subdir to tempdir as 'docs' docs_src = os.path.join(dirname, ".docs") docs_dst = os.path.join(tempdir, "docs") shutil.copytree(docs_src, docs_dst, False, None) # Create a new git repo in tempdir repo = Repo.init(tempdir) # Add all copied files to the repo repo.git.add(A=True) # Commit with message "initial" repo.git.commit(m="initial") return tempdir >>>>>>> UPDATED ``` Finally, let's call the `create_temp_repo` function with the command-line argument in the `__main__` block: ```python scripts/benchmark.py <<<<<<< ORIGINAL ======= if __name__ == "__main__": if len(sys.argv) != 2: print("Usage: python benchmark.py <dirname>") sys.exit(1) dirname = sys.argv[1] temp_repo_path = create_temp_repo(dirname) print(f"Temporary repo created at: {temp_repo_path}") >>>>>>> UPDATED ``` Now, you can run the script with the command `python scripts/benchmark.py <dirname>`, where `<dirname>` is the directory you want to create a temporary repo for.
This commit is contained in:
parent
fb2f3ba6c2
commit
55fb2ffe52
1 changed files with 39 additions and 0 deletions
|
@ -0,0 +1,39 @@
|
|||
import os
|
||||
import shutil
|
||||
import sys
|
||||
from tempfile import TemporaryDirectory
|
||||
from git import Repo
|
||||
def create_temp_repo(dirname):
|
||||
with TemporaryDirectory() as tempdir:
|
||||
# Copy all files from dirname to tempdir
|
||||
for item in os.listdir(dirname):
|
||||
s = os.path.join(dirname, item)
|
||||
d = os.path.join(tempdir, item)
|
||||
if os.path.isdir(s):
|
||||
shutil.copytree(s, d, False, None)
|
||||
else:
|
||||
shutil.copy2(s, d)
|
||||
|
||||
# Copy .docs subdir to tempdir as 'docs'
|
||||
docs_src = os.path.join(dirname, ".docs")
|
||||
docs_dst = os.path.join(tempdir, "docs")
|
||||
shutil.copytree(docs_src, docs_dst, False, None)
|
||||
|
||||
# Create a new git repo in tempdir
|
||||
repo = Repo.init(tempdir)
|
||||
|
||||
# Add all copied files to the repo
|
||||
repo.git.add(A=True)
|
||||
|
||||
# Commit with message "initial"
|
||||
repo.git.commit(m="initial")
|
||||
|
||||
return tempdir
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) != 2:
|
||||
print("Usage: python benchmark.py <dirname>")
|
||||
sys.exit(1)
|
||||
|
||||
dirname = sys.argv[1]
|
||||
temp_repo_path = create_temp_repo(dirname)
|
||||
print(f"Temporary repo created at: {temp_repo_path}")
|
Loading…
Add table
Add a link
Reference in a new issue