Initial commit from agent
This commit is contained in:
43
capabilities/file_system.py
Normal file
43
capabilities/file_system.py
Normal file
@@ -0,0 +1,43 @@
|
||||
"""
|
||||
File system operations — create projects, manage folders, list files.
|
||||
Cross-platform: uses pathlib and os only.
|
||||
"""
|
||||
import os
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
def create_project(name: str, base_path: str = "C:/Projects") -> str:
|
||||
"""Create a new project folder with README and .gitignore."""
|
||||
path = Path(base_path) / name
|
||||
path.mkdir(parents=True, exist_ok=True)
|
||||
(path / "README.md").write_text(f"# {name}\n\nProject created by JARVIS.\n")
|
||||
(path / ".gitignore").write_text("__pycache__/\n.env\n*.pyc\n")
|
||||
return str(path)
|
||||
|
||||
def list_directory(path: str) -> list[dict]:
|
||||
"""List files and folders in a directory."""
|
||||
p = Path(path)
|
||||
if not p.exists():
|
||||
return []
|
||||
return [
|
||||
{'name': item.name, 'type': 'dir' if item.is_dir() else 'file', 'size': item.stat().st_size if item.is_file() else None}
|
||||
for item in sorted(p.iterdir())
|
||||
]
|
||||
|
||||
def read_file(path: str) -> str:
|
||||
"""Read the contents of a text file."""
|
||||
return Path(path).read_text(encoding='utf-8')
|
||||
|
||||
def write_file(path: str, content: str):
|
||||
"""Write content to a file, creating parent directories if needed."""
|
||||
p = Path(path)
|
||||
p.parent.mkdir(parents=True, exist_ok=True)
|
||||
p.write_text(content, encoding='utf-8')
|
||||
|
||||
def delete_file(path: str):
|
||||
"""Delete a file."""
|
||||
Path(path).unlink(missing_ok=True)
|
||||
|
||||
def open_folder(path: str):
|
||||
"""Open a folder in Windows Explorer."""
|
||||
os.startfile(path)
|
||||
Reference in New Issue
Block a user