fix empty dir

This commit is contained in:
Mateusz Gruszczyński
2026-06-12 23:31:31 +02:00
parent a2cdc203c2
commit f1129fd3c4
3 changed files with 14 additions and 5 deletions
+9 -3
View File
@@ -20,7 +20,10 @@ def browse_path(profile: dict, path: str | None = None) -> dict:
'dir_count=0; file_count=0; '
'for p in "$base"/* "$base"/.[!.]* "$base"/..?*; do '
'[ -e "$p" ] || continue; '
'if [ -d "$p" ]; then dir_count=$((dir_count+1)); name=${p##*/}; printf "D\\t%s\\t%s\\n" "$name" "$p"; '
'if [ -d "$p" ]; then '
'dir_count=$((dir_count+1)); name=${p##*/}; empty=1; '
'if find "$p" -mindepth 1 -maxdepth 1 -print -quit 2>/dev/null | grep -q .; then empty=0; fi; '
'printf "D\\t%s\\t%s\\t%s\\n" "$name" "$p" "$empty"; '
'elif [ -f "$p" ]; then file_count=$((file_count+1)); fi; '
'done; '
'printf "M\\t%s\\t%s\\n" "$dir_count" "$file_count"; '
@@ -37,9 +40,12 @@ def browse_path(profile: dict, path: str | None = None) -> dict:
continue
marker, rest = line.split("\t", 1)
if marker == "D" and "\t" in rest:
name, full_path = rest.split("\t", 1)
parts = rest.split("\t", 2)
name, full_path = parts[0], parts[1]
is_empty = len(parts) > 2 and parts[2] == "1"
if name not in {".", ".."}:
dirs.append({"name": name, "path": full_path})
# Note: Empty status is returned with every directory so the path picker can enable safe inline rename.
dirs.append({"name": name, "path": full_path, "empty": is_empty})
elif marker == "M" and "\t" in rest:
first, second = rest.split("\t", 1)
try: