-
Notifications
You must be signed in to change notification settings - Fork 181
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: Add format type text #1397
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1397 +/- ##
==========================================
+ Coverage 85.14% 85.32% +0.17%
==========================================
Files 107 107
Lines 3790 3795 +5
==========================================
+ Hits 3227 3238 +11
+ Misses 336 333 -3
+ Partials 227 224 -3 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to clarify: For this PR, which of the following is matches your expectation:
- Make the format selection code more readable, or
- Define the behavior of text output in command help doc. E.g. for v.1.2.0 the help doc of
oras attach
is
> oras attach -h
...
--format string [Experimental] Format output using a custom template:
'json': Print in JSON format
'go-template': Print output using the given Go template
...
And you are trying to change it to:
> oras attach -h
...
--format string [Experimental] Format output using a custom template:
'': Print in text format
'json': Print in JSON format
'go-template': Print output using the given Go template
...
/cc @FeynmanZhou
Signed-off-by: Terry Howe <[email protected]>
5934c1d
to
8a8027c
Compare
Signed-off-by: Terry Howe <[email protected]>
8a8027c
to
1a64e75
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should exclude FormatTypeText
from oras discover
Since this PR unifies default value for format type, I am thinking maybe we should take a step further and add a new function to set default and optional allowed types, e.g. // Format contains input and parsed options for formatted output flags.
type Format struct {
FormatFlag string
Type string
Template string
defaultType *FormatType
allowedTypes []*FormatType
}
// SetTypes sets the default format type and allowed format types.
func (opts *Format) SetTypes(defaultType *FormatType, allowedTypes ...*FormatType) {
opts.defaultType = defaultType
opts.allowedTypes = append(allowedTypes, defaultType)
} So taking - opts.AllowedTypes = []*option.FormatType{option.FormatTypeJSON, option.FormatTypeGoTemplate}
+ opts.SetTypes(option.FormatTypeText, option.FormatTypeJSON, option.FormatTypeGoTemplate) For - opts.AllowedTypes = []*option.FormatType{
+ opts.SetType(
option.FormatTypeTree,
option.FormatTypeTable,
option.FormatTypeJSON.WithUsage("Get direct referrers and output in JSON format"),
option.FormatTypeGoTemplate.WithUsage("Print direct referrers using the given Go template"),
- }
+ ) |
Signed-off-by: Billy Zha <[email protected]>
Signed-off-by: Billy Zha <[email protected]>
Signed-off-by: Billy Zha <[email protected]>
Signed-off-by: Billy Zha <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
Nice, thanks!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM with suggestions and questions.
Signed-off-by: Terry Howe <[email protected]>
Signed-off-by: Billy Zha <[email protected]>
Signed-off-by: Billy Zha <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
What this PR does / why we need it:
Introduce
text
as default format type forpull
,push
,manifest fetch
andattach
commands.The only change in E2E experience is in the help document. Taking
oras attach
as an example:Before
After