cmds.posix.copy: Allow missing mode option
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 5m11s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m45s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 5m0s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 4m55s
CI / Packaging test (push) Successful in 0s

The -m option of posix copy is optional, and its argparse default is None,
but _run() converts it unconditionally and crashes:

    mode = int(args.mode, 0)

so every copy without -m died with

    TypeError: int() can't convert non-string with explicit base

before the copy even started. Convert the mode only when it is given, and
pass None otherwise, which copy() already treats as "no mode change".

Signed-off-by: Jan Lindemann <jan@janware.com>
Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v0.99.2
This commit is contained in:
Jan Lindemann 2026-10-01 06:54:51 +02:00
commit 9eec04f0f3
Signed by: Jan Lindemann
GPG key ID: 3750640C9E25DD61

View file

@ -58,6 +58,7 @@ class CmdCopy(Cmd): # export
__expand(args.dst),
owner = args.owner,
group = args.group,
mode = int(args.mode, 0),
# -- A mode is given as a string, if at all
mode = int(args.mode, 0) if args.mode is not None else None,
recursive = args.recursive,
)