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

Function AssetsFromArgs

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

Source from the content-addressed store, hash-verified

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