added basic functionality for project files
This commit is contained in:
parent
f7f1cedcde
commit
2f77dba953
63
scripts/project_man.py
Normal file
63
scripts/project_man.py
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
import os
|
||||||
|
from typing import Any
|
||||||
|
import toml
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
def findProjectFile() -> tuple[bool, str]:
|
||||||
|
cwd = os.getcwd().split("/")
|
||||||
|
for i in range(len(cwd) - 2):
|
||||||
|
searchPath = "/".join(cwd[0:len(cwd)-i])
|
||||||
|
[exists, pathToProjectFile] = projectFileExists(searchPath)
|
||||||
|
if exists:
|
||||||
|
return (True, pathToProjectFile)
|
||||||
|
return (False, "")
|
||||||
|
|
||||||
|
def projectFileExists(path: str) -> tuple[bool, str]:
|
||||||
|
files = os.listdir(path)
|
||||||
|
for file in files:
|
||||||
|
if "gantry.toml" in file:
|
||||||
|
return (True, os.path.join(path, file))
|
||||||
|
return (False,"")
|
||||||
|
|
||||||
|
def initProjectFile(projectName: str) -> tuple[bool, str]:
|
||||||
|
cwd = os.getcwd()
|
||||||
|
projectPath = os.path.join(cwd, "gantry.toml")
|
||||||
|
[exists, existingProjectPath] = projectFileExists(cwd)
|
||||||
|
if exists:
|
||||||
|
existingProjectName = existingProjectPath.split("/")[-1]
|
||||||
|
return (False, f"Project {existingProjectName} already exists, amend it to fit your intention or delete it to create a new project")
|
||||||
|
try:
|
||||||
|
with open(projectPath, "w") as f:
|
||||||
|
parsedTOML = toml.loads(createProjectFileTemplate(projectName))
|
||||||
|
toml.dump(parsedTOML, f)
|
||||||
|
except:
|
||||||
|
return (False, "Creation of file failed, permissions may be set wrong")
|
||||||
|
|
||||||
|
return (True, projectPath)
|
||||||
|
|
||||||
|
def loadProjectFile() -> tuple[bool, str | dict[str, Any]] :
|
||||||
|
[exists, path] = findProjectFile()
|
||||||
|
if not exists:
|
||||||
|
return (False, "")
|
||||||
|
try:
|
||||||
|
with open(path, "r") as f:
|
||||||
|
toml.load
|
||||||
|
parsedTOML = toml.load(f)
|
||||||
|
print(parsedTOML)
|
||||||
|
return (True, parsedTOML)
|
||||||
|
except:
|
||||||
|
return (False, "Reading Project file failed, permissions may be set wrong")
|
||||||
|
def createProjectFileTemplate(projectName: str) -> str:
|
||||||
|
return f"""
|
||||||
|
title = "{projectName}"
|
||||||
|
createdAt = "{datetime.time()}"
|
||||||
|
maintainer = ""
|
||||||
|
email = ""
|
||||||
|
version = "0.0.1"
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
print(loadProjectFile())
|
||||||
|
print(findProjectFile())
|
||||||
Loading…
x
Reference in New Issue
Block a user