split get_results and analysze
This commit is contained in:
@@ -104,26 +104,20 @@ class SubprocessAnalyzer(ABC):
|
|||||||
raise NotImplementedError("cmd must be set or build_cmd overridden")
|
raise NotImplementedError("cmd must be set or build_cmd overridden")
|
||||||
return self.cmd
|
return self.cmd
|
||||||
|
|
||||||
@overload
|
def get_results(self, password: Optional[str] = None) -> dict[str, Any]:
|
||||||
def analyze(self) -> None: ...
|
"""Get results of command before returning."""
|
||||||
|
|
||||||
@overload
|
|
||||||
def analyze(self, password: str) -> None: ...
|
|
||||||
|
|
||||||
def analyze(self, password: Optional[str] = None) -> None:
|
|
||||||
"""Run the subprocess command and handle results."""
|
|
||||||
result: dict[str, Any]
|
result: dict[str, Any]
|
||||||
try:
|
|
||||||
extracted_dir = None
|
extracted_dir = None
|
||||||
if self.has_archive:
|
if self.has_archive:
|
||||||
extracted_dir = self.get_extracted_dir()
|
extracted_dir = self.get_extracted_dir()
|
||||||
if self.make_folder:
|
if self.make_folder:
|
||||||
extracted_dir.mkdir(parents=True, exist_ok=True)
|
extracted_dir.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
cmd: list[str]
|
||||||
if password:
|
if password:
|
||||||
cmd = self.build_cmd(password)
|
cmd = list(map(str, self.build_cmd(password)))
|
||||||
else:
|
else:
|
||||||
cmd = self.build_cmd()
|
cmd = list(map(str, self.build_cmd()))
|
||||||
data = self.run_command(cmd, cwd=self.output_dir)
|
data = self.run_command(cmd, cwd=self.output_dir)
|
||||||
returncode = data.returncode
|
returncode = data.returncode
|
||||||
stderr = data.stderr
|
stderr = data.stderr
|
||||||
@@ -149,6 +143,19 @@ class SubprocessAnalyzer(ABC):
|
|||||||
result["note"] = note
|
result["note"] = note
|
||||||
if zip_exist:
|
if zip_exist:
|
||||||
result["download"] = f"/download/{self.output_dir.name}/{self.name}"
|
result["download"] = f"/download/{self.output_dir.name}/{self.name}"
|
||||||
|
return result
|
||||||
|
|
||||||
|
@overload
|
||||||
|
def analyze(self) -> None: ...
|
||||||
|
|
||||||
|
@overload
|
||||||
|
def analyze(self, password: str) -> None: ...
|
||||||
|
|
||||||
|
def analyze(self, password: Optional[str] = None) -> None:
|
||||||
|
"""Run the subprocess command and handle results."""
|
||||||
|
result: dict[str, Any]
|
||||||
|
try:
|
||||||
|
result = self.get_results(password)
|
||||||
self.update_result(result)
|
self.update_result(result)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.update_result({"status": "error", "error": str(e)})
|
self.update_result({"status": "error", "error": str(e)})
|
||||||
|
|||||||
Reference in New Issue
Block a user