本文整理汇总了Golang中github.com/bryanl/doit.DisplayOutput函数的典型用法代码示例。如果您正苦于以下问题:Golang DisplayOutput函数的具体用法?Golang DisplayOutput怎么用?Golang DisplayOutput使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了DisplayOutput函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: RunKeyGet
// RunKeyGet retrieves a key.
func RunKeyGet(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
rawKey := args[0]
var err error
var key *godo.Key
if i, aerr := strconv.Atoi(rawKey); aerr == nil {
key, _, err = client.Keys.GetByID(i)
} else {
if len(rawKey) > 0 {
key, _, err = client.Keys.GetByFingerprint(rawKey)
} else {
err = fmt.Errorf("missing key id or fingerprint")
}
}
if err != nil {
return err
}
return doit.DisplayOutput(key, out)
}
示例2: RunImagesGet
// RunImagesGet retrieves an image by id or slug.
func RunImagesGet(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
rawID := args[0]
var image *godo.Image
var err error
if id, cerr := strconv.Atoi(rawID); cerr == nil {
image, _, err = client.Images.GetByID(id)
} else {
if len(rawID) > 0 {
image, _, err = client.Images.GetBySlug(rawID)
} else {
err = fmt.Errorf("image identifier is required")
}
}
if err != nil {
return err
}
return doit.DisplayOutput(image, out)
}
示例3: RunKeyCreate
// RunKeyCreate uploads a SSH key.
func RunKeyCreate(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
name := args[0]
publicKey, err := config.GetString(ns, doit.ArgKeyPublicKey)
if err != nil {
return err
}
kcr := &godo.KeyCreateRequest{
Name: name,
PublicKey: publicKey,
}
r, _, err := client.Keys.Create(kcr)
if err != nil {
logrus.WithField("err", err).Fatal("could not create key")
}
return doit.DisplayOutput(r, out)
}
示例4: RunRecordList
// RunRecordList list records for a domain.
func RunRecordList(ns string, out io.Writer) error {
client := doit.DoitConfig.GetGodoClient()
name := doit.DoitConfig.GetString(ns, doit.ArgDomainName)
if len(name) < 1 {
return errors.New("domain name is missing")
}
f := func(opt *godo.ListOptions) ([]interface{}, *godo.Response, error) {
list, resp, err := client.Domains.Records(name, opt)
if err != nil {
return nil, nil, err
}
si := make([]interface{}, len(list))
for i := range list {
si[i] = list[i]
}
return si, resp, err
}
si, err := doit.PaginateResp(f)
if err != nil {
return err
}
list := make([]godo.DomainRecord, len(si))
for i := range si {
list[i] = si[i].(godo.DomainRecord)
}
return doit.DisplayOutput(list, out)
}
示例5: RunDropletActions
// RunDropletActions returns a list of actions for a droplet.
func RunDropletActions(ns string, out io.Writer) error {
client := doit.DoitConfig.GetGodoClient()
id := doit.DoitConfig.GetInt(ns, doit.ArgDropletID)
f := func(opt *godo.ListOptions) ([]interface{}, *godo.Response, error) {
list, resp, err := client.Droplets.Actions(id, opt)
if err != nil {
return nil, nil, err
}
si := make([]interface{}, len(list))
for i := range list {
si[i] = list[i]
}
return si, resp, err
}
si, err := doit.PaginateResp(f)
if err != nil {
return err
}
list := make([]godo.Action, len(si))
for i := range si {
list[i] = si[i].(godo.Action)
}
return doit.DisplayOutput(list, out)
}
示例6: RunKeyUpdate
// RunKeyUpdate updates a key.
func RunKeyUpdate(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
rawKey := args[0]
name, err := config.GetString(ns, doit.ArgKeyName)
if err != nil {
return err
}
req := &godo.KeyUpdateRequest{
Name: name,
}
var key *godo.Key
if i, aerr := strconv.Atoi(rawKey); aerr == nil {
key, _, err = client.Keys.UpdateByID(i, req)
} else {
key, _, err = client.Keys.UpdateByFingerprint(rawKey, req)
}
if err != nil {
return err
}
return doit.DisplayOutput(key, out)
}
示例7: RunImagesUpdate
// RunImagesUpdate updates an image.
func RunImagesUpdate(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
id, err := strconv.Atoi(args[0])
if err != nil {
return err
}
name, err := config.GetString(ns, doit.ArgImageName)
req := &godo.ImageUpdateRequest{
Name: name,
}
image, _, err := client.Images.Update(id, req)
if err != nil {
return err
}
return doit.DisplayOutput(image, out)
}
示例8: RunDomainCreate
// RunDomainCreate runs domain create.
func RunDomainCreate(ns string, config doit.Config, out io.Writer, args []string) error {
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
domainName := args[0]
client := config.GetGodoClient()
ipAddress, err := config.GetString(ns, "ip-address")
if err != nil {
return err
}
req := &godo.DomainCreateRequest{
Name: domainName,
IPAddress: ipAddress,
}
d, _, err := client.Domains.Create(req)
if err != nil {
return err
}
return doit.DisplayOutput(d, out)
}
示例9: RunImageActionsTransfer
// RunImageActionsTransfer an image.
func RunImageActionsTransfer(ns string, config doit.Config, out io.Writer, args []string) error {
client := config.GetGodoClient()
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
id, err := strconv.Atoi(args[0])
if err != nil {
return err
}
region, err := config.GetString(ns, doit.ArgRegionSlug)
if err != nil {
return err
}
req := &godo.ActionRequest{
"region": region,
}
action, _, err := client.ImageActions.Transfer(id, req)
if err != nil {
logrus.WithField("err", err).Fatal("could not transfer image")
}
return doit.DisplayOutput(action, out)
}
示例10: RunKeyImport
// RunKeyImport imports a key from a file
func RunKeyImport(ns string, out io.Writer) error {
client := doit.DoitConfig.GetGodoClient()
keyPath := doit.DoitConfig.GetString(ns, doit.ArgKeyPublicKeyFile)
keyName := doit.DoitConfig.GetString(ns, doit.ArgKeyName)
keyFile, err := ioutil.ReadFile(keyPath)
if err != nil {
return err
}
_, comment, _, _, err := ssh.ParseAuthorizedKey(keyFile)
if err != nil {
return err
}
if len(keyName) < 1 {
keyName = comment
}
kcr := &godo.KeyCreateRequest{
Name: keyName,
PublicKey: string(keyFile),
}
r, _, err := client.Keys.Create(kcr)
if err != nil {
return err
}
return doit.DisplayOutput(r, out)
}
示例11: listImages
func listImages(ns string, config doit.Config, out io.Writer, lFn listFn) error {
public, err := config.GetBool(ns, doit.ArgImagePublic)
if err != nil {
return err
}
fn := func(opt *godo.ListOptions) ([]interface{}, *godo.Response, error) {
list, resp, err := lFn(opt)
if err != nil {
return nil, nil, err
}
si := []interface{}{}
for _, i := range list {
if (public && i.Public) || !public {
si = append(si, i)
}
}
return si, resp, err
}
si, err := doit.PaginateResp(fn)
if err != nil {
return err
}
list := make([]godo.Image, len(si))
for i := range si {
list[i] = si[i].(godo.Image)
}
return doit.DisplayOutput(list, out)
}
示例12: RunFloatingIPList
// RunFloatingIPList runs floating IP create.
func RunFloatingIPList(ns string, out io.Writer) error {
client := doit.DoitConfig.GetGodoClient()
f := func(opt *godo.ListOptions) ([]interface{}, *godo.Response, error) {
list, resp, err := client.FloatingIPs.List(opt)
if err != nil {
return nil, nil, err
}
si := make([]interface{}, len(list))
for i := range list {
si[i] = list[i]
}
return si, resp, err
}
si, err := doit.PaginateResp(f)
if err != nil {
return err
}
list := make([]godo.FloatingIP, len(si))
for i := range si {
list[i] = si[i].(godo.FloatingIP)
}
return doit.DisplayOutput(list, out)
}
示例13: RunRecordUpdate
// RunRecordUpdate updates a domain record.
func RunRecordUpdate(ns string, config doit.Config, out io.Writer, args []string) error {
if len(args) != 1 {
return doit.NewMissingArgsErr(ns)
}
domainName := args[0]
client := config.GetGodoClient()
recordID, err := config.GetInt(ns, doit.ArgRecordID)
if err != nil {
return err
}
rType, err := config.GetString(ns, doit.ArgRecordType)
if err != nil {
return err
}
rName, err := config.GetString(ns, doit.ArgRecordName)
if err != nil {
return err
}
rData, err := config.GetString(ns, doit.ArgRecordData)
if err != nil {
return err
}
rPriority, err := config.GetInt(ns, doit.ArgRecordPriority)
if err != nil {
return err
}
rPort, err := config.GetInt(ns, doit.ArgRecordPort)
if err != nil {
return err
}
rWeight, err := config.GetInt(ns, doit.ArgRecordWeight)
if err != nil {
return err
}
drcr := &godo.DomainRecordEditRequest{
Type: rType,
Name: rName,
Data: rData,
Priority: rPriority,
Port: rPort,
Weight: rWeight,
}
r, _, err := client.Domains.EditRecord(domainName, recordID, drcr)
if err != nil {
return err
}
return doit.DisplayOutput(r, out)
}
示例14: performAction
func performAction(out io.Writer, config doit.Config, fn actionFn) error {
client := config.GetGodoClient()
a, err := fn(client)
if err != nil {
return err
}
return doit.DisplayOutput(a, out)
}
示例15: RunAccountGet
// RunAccountGet runs account get.
func RunAccountGet(ns string, out io.Writer) error {
client := doit.DoitConfig.GetGodoClient()
a, _, err := client.Account.Get()
if err != nil {
return err
}
return doit.DisplayOutput(a, out)
}