Issue Description
Problem
- Symlink Asset Resolution Breakdowns: When executing the compiled
nomore403 binary via a symbolic link, the tool fails to locate the default payloads/ directory. This happens because the runtime context evaluates relative to the symlink file path rather than the underlying binary destination.
- Global Installation Configuration Gaps: Users who install the tool via
go install or run it globally have to manually move or pass the -f flag to point to the payloads directory, leading to a clunky user experience for a system-wide CLI utility.
- Redundant Code Patterns: The initialization checks for trailing slashes on target URIs use multi-line conditional statements that can be simplified into a more idiomatic Go pattern.
Proposed Solution
- Implement
filepath.EvalSymlinks: Update the path resolution inside cmd/root.go to follow symbolic links to their absolute source before attaching the fallback /payloads directory string.
- Introduce a Configuration
Makefile: * Add a make build target that compiles the binary locally while deploying default payloads to a persistent global directory (~/.nomore403/payloads).
- Add a
make install target that handles dynamic GOBIN/GOPATH extraction via go env for a robust, zero-download installation footprint.
- Include an automated
-h verification step on successful compilation.
- Refactor Code Noise: Replace the conditional slash checks inside
runAutocalibrate with an unconditional strings.TrimSuffix(options.uri, "/") + "/" statement and remove any verified dead code wrappers.
I have implemented these fixes locally across cmd/root.go and a new root-level Makefile and can submit a Pull Request if the maintainers are open to these improvements.
Issue Description
Problem
nomore403binary via a symbolic link, the tool fails to locate the defaultpayloads/directory. This happens because the runtime context evaluates relative to the symlink file path rather than the underlying binary destination.go installor run it globally have to manually move or pass the-fflag to point to the payloads directory, leading to a clunky user experience for a system-wide CLI utility.Proposed Solution
filepath.EvalSymlinks: Update the path resolution insidecmd/root.goto follow symbolic links to their absolute source before attaching the fallback/payloadsdirectory string.Makefile: * Add amake buildtarget that compiles the binary locally while deploying default payloads to a persistent global directory (~/.nomore403/payloads).make installtarget that handles dynamicGOBIN/GOPATHextraction viago envfor a robust, zero-download installation footprint.-hverification step on successful compilation.runAutocalibratewith an unconditionalstrings.TrimSuffix(options.uri, "/") + "/"statement and remove any verified dead code wrappers.I have implemented these fixes locally across
cmd/root.goand a new root-levelMakefileand can submit a Pull Request if the maintainers are open to these improvements.