MCPcopy Create free account
hub / github.com/cli/cli / AssetsFromArgs

Function AssetsFromArgs

pkg/cmd/release/shared/upload.go:40–77  ·  view source on GitHub ↗
(args []string)

Source from the content-addressed store, hash-verified

38}
39
40func AssetsFromArgs(args []string) (assets []*AssetForUpload, err error) {
41 labeledArgs, unlabeledArgs := cmdutil.Partition(args, func(arg string) bool {
42 return strings.Contains(arg, "#")
43 })
44
45 args, err = cmdutil.GlobPaths(unlabeledArgs)
46 if err != nil {
47 return nil, err
48 }
49
50 args = append(args, labeledArgs...)
51
52 for _, arg := range args {
53 var label string
54 fn := arg
55 if idx := strings.IndexRune(arg, '#'); idx > 0 {
56 fn = arg[0:idx]
57 label = arg[idx+1:]
58 }
59
60 var fi os.FileInfo
61 fi, err = os.Stat(fn)
62 if err != nil {
63 return
64 }
65
66 assets = append(assets, &AssetForUpload{
67 Open: func() (io.ReadCloser, error) {
68 return os.Open(fn)
69 },
70 Size: fi.Size(),
71 Name: fi.Name(),
72 Label: label,
73 MIMEType: typeForFilename(fi.Name()),
74 })
75 }
76 return
77}
78
79func typeForFilename(fn string) string {
80 ext := fileExt(fn)

Callers 2

NewCmdUploadFunction · 0.92
NewCmdCreateFunction · 0.92

Calls 7

PartitionFunction · 0.92
GlobPathsFunction · 0.92
typeForFilenameFunction · 0.85
ContainsMethod · 0.80
OpenMethod · 0.80
SizeMethod · 0.65
NameMethod · 0.65

Tested by

no test coverage detected