|
|
|
|
|
import os |
|
|
import sys |
|
|
import shutil |
|
|
from pathlib import Path |
|
|
import streamlit as st |
|
|
|
|
|
def setup_directories(): |
|
|
"""Set up necessary directories and permissions.""" |
|
|
try: |
|
|
|
|
|
if os.path.exists('/data'): |
|
|
|
|
|
base_path = Path('/data') |
|
|
else: |
|
|
|
|
|
base_path = Path(os.getcwd()) / 'data' |
|
|
|
|
|
|
|
|
directories = [ |
|
|
base_path / 'database', |
|
|
base_path / 'files', |
|
|
base_path / 'vectorstore', |
|
|
base_path / 'metadata', |
|
|
Path('img'), |
|
|
Path('components'), |
|
|
Path('utils'), |
|
|
Path('static/thumbnails') |
|
|
] |
|
|
|
|
|
|
|
|
for directory in directories: |
|
|
directory.mkdir(parents=True, exist_ok=True) |
|
|
print(f"Created directory: {directory}") |
|
|
|
|
|
|
|
|
init_dirs = ['components', 'utils'] |
|
|
for dir_name in init_dirs: |
|
|
init_file = Path(dir_name) / '__init__.py' |
|
|
init_file.touch(exist_ok=True) |
|
|
print(f"Created {init_file}") |
|
|
|
|
|
|
|
|
db_file = base_path / 'database' / 'rfp_analysis.db' |
|
|
db_file.touch(exist_ok=True) |
|
|
print(f"Created database file: {db_file}") |
|
|
|
|
|
|
|
|
if sys.platform.startswith('linux'): |
|
|
try: |
|
|
for directory in directories: |
|
|
os.chmod(directory, 0o777) |
|
|
os.chmod(db_file, 0o666) |
|
|
print("Set permissions successfully") |
|
|
except Exception as e: |
|
|
print(f"Warning: Could not set permissions: {e}") |
|
|
|
|
|
print("Setup completed successfully!") |
|
|
return True |
|
|
|
|
|
except Exception as e: |
|
|
print(f"Error during setup: {e}") |
|
|
return False |
|
|
|
|
|
if __name__ == "__main__": |
|
|
setup_directories() |