mirror of
https://github.com/OMGeeky/gpt-pilot.git
synced 2025-12-29 15:45:44 +01:00
44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
import os
|
|
from pathlib import Path
|
|
from database.database import save_user_app
|
|
|
|
|
|
def get_parent_folder(folder_name):
|
|
current_path = Path(os.path.abspath(__file__)) # get the path of the current script
|
|
|
|
while current_path.name != folder_name: # while the current folder name is not 'folder_name'
|
|
current_path = current_path.parent # go up one level
|
|
|
|
return current_path.parent
|
|
|
|
|
|
def setup_workspace(args) -> str:
|
|
"""
|
|
Creates & returns the path to the project workspace.
|
|
Also creates a 'tests' folder inside the workspace.
|
|
:param args: may contain 'workspace' or 'root' keys
|
|
"""
|
|
# `args['workspace']` can be used to work with an existing workspace at the specified path.
|
|
# `args['root']` is used by VS Code for (nearly) the same purpose, but `args['name']` is appended to it.
|
|
workspace = args.get('workspace')
|
|
if workspace:
|
|
try:
|
|
save_user_app(args['user_id'], args['app_id'], workspace)
|
|
return workspace
|
|
except Exception as e:
|
|
print(str(e))
|
|
|
|
return args['workspace']
|
|
|
|
root = args.get('root') or get_parent_folder('pilot')
|
|
project_path = create_directory(os.path.join(root, 'workspace'), args.get('name', 'default_project_name'))
|
|
create_directory(project_path, 'tests')
|
|
return project_path
|
|
|
|
|
|
def create_directory(parent_directory, new_directory):
|
|
new_directory_path = os.path.join(parent_directory, new_directory)
|
|
os.makedirs(new_directory_path, exist_ok=True)
|
|
|
|
return new_directory_path
|