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

Method Create

pkg/cmd/extension/manager.go:618–644  ·  view source on GitHub ↗
(name string, tmplType extensions.ExtTemplateType)

Source from the content-addressed store, hash-verified

616var buildScript []byte
617
618func (m *Manager) Create(name string, tmplType extensions.ExtTemplateType) error {
619 if _, err := m.gitClient.CommandOutput([]string{"init", "--quiet", name}); err != nil {
620 return err
621 }
622
623 if tmplType == extensions.GoBinTemplateType {
624 return m.goBinScaffolding(name)
625 } else if tmplType == extensions.OtherBinTemplateType {
626 return m.otherBinScaffolding(name)
627 }
628
629 script := fmt.Sprintf(scriptTmpl, name)
630 if err := writeFile(filepath.Join(name, name), []byte(script), 0755); err != nil {
631 return err
632 }
633
634 scopedClient := m.gitClient.ForRepo(name)
635 if _, err := scopedClient.CommandOutput([]string{"add", name, "--chmod=+x"}); err != nil {
636 return err
637 }
638
639 if _, err := scopedClient.CommandOutput([]string{"commit", "-m", "initial commit"}); err != nil {
640 return ErrInitialCommitFailed
641 }
642
643 return nil
644}
645
646func (m *Manager) otherBinScaffolding(name string) error {
647 if err := writeFile(filepath.Join(name, ".github", "workflows", "release.yml"), otherBinWorkflow, 0644); err != nil {

Callers

nothing calls this directly

Calls 6

goBinScaffoldingMethod · 0.95
otherBinScaffoldingMethod · 0.95
JoinMethod · 0.80
writeFileFunction · 0.70
CommandOutputMethod · 0.65
ForRepoMethod · 0.65

Tested by

no test coverage detected