fix: create output directory if it doesn't exist #567
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #556 by automatically creating the output directory when using the
--outputflag, rather than requiring it to exist beforehand.Problem
Previously, when using
--output /path/to/dir, PerfSpect would exit with an error if the directory didn't exist:This was inconsistent with the default behavior where output directories are created automatically.
Solution
Replace the existence check with a call to
common.CreateOutputDir(), which:os.MkdirAll--output /path/to/nested/dir)Changes
File:
cmd/root.goReplaced lines 160-168:
With:
Benefits
--outputnow works like default output directoriesTesting
✅ All existing unit tests pass
✅ Code quality checks pass (
make format,make test)Manual testing scenarios to verify:
--output /tmp/newdircreates the directory--output /existing/dirworks without error--output /deeply/nested/new/dircreates all parents