MCPcopy Create free account
hub / github.com/FSoft-AI4Code/CodeWiki / check_writable_output

Function check_writable_output

codewiki/cli/utils/repo_validator.py:74–116  ·  view source on GitHub ↗

Check if output directory is writable. Args: output_dir: Output directory path Returns: Validated output directory path Raises: RepositoryError: If output directory is not writable

(output_dir: Path)

Source from the content-addressed store, hash-verified

72
73
74def check_writable_output(output_dir: Path) -> Path:
75 """
76 Check if output directory is writable.
77
78 Args:
79 output_dir: Output directory path
80
81 Returns:
82 Validated output directory path
83
84 Raises:
85 RepositoryError: If output directory is not writable
86 """
87 output_dir = Path(output_dir).expanduser().resolve()
88
89 # Check if output directory exists
90 if output_dir.exists():
91 if not output_dir.is_dir():
92 raise RepositoryError(
93 f"Output path exists but is not a directory: {output_dir}"
94 )
95
96 # Check if writable
97 if not os.access(output_dir, os.W_OK):
98 raise RepositoryError(
99 f"Output directory is not writable: {output_dir}\n\n"
100 f"Try: chmod u+w {output_dir}"
101 )
102 else:
103 # Check if parent is writable
104 parent = output_dir.parent
105 if not parent.exists():
106 raise RepositoryError(
107 f"Parent directory does not exist: {parent}"
108 )
109
110 if not os.access(parent, os.W_OK):
111 raise RepositoryError(
112 f"Cannot create output directory (parent not writable): {parent}\n\n"
113 f"Try: chmod u+w {parent}"
114 )
115
116 return output_dir
117
118
119def _get_git_repo(repo_path: Path):

Callers 1

generate_commandFunction · 0.90

Calls 2

RepositoryErrorClass · 0.90
resolveMethod · 0.80

Tested by

no test coverage detected