61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package cli
|
|
|
|
import (
|
|
"github.com/influxdata/influxdb/v2/kit/platform"
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/pflag"
|
|
)
|
|
|
|
// Wrapper for influxdb.ID
|
|
type idValue platform.ID
|
|
|
|
func newIDValue(val platform.ID, p *platform.ID) *idValue {
|
|
*p = val
|
|
return (*idValue)(p)
|
|
}
|
|
|
|
func (i *idValue) String() string { return platform.ID(*i).String() }
|
|
func (i *idValue) Set(s string) error {
|
|
id, err := platform.IDFromString(s)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
*i = idValue(*id)
|
|
return nil
|
|
}
|
|
|
|
func (i *idValue) Type() string {
|
|
return "ID"
|
|
}
|
|
|
|
// IDVar defines an influxdb.ID flag with specified name, default value, and usage string.
|
|
// The argument p points to an influxdb.ID variable in which to store the value of the flag.
|
|
func IDVar(fs *pflag.FlagSet, p *platform.ID, name string, value platform.ID, usage string) {
|
|
IDVarP(fs, p, name, "", value, usage)
|
|
}
|
|
|
|
// IDVarP is like IDVar, but accepts a shorthand letter that can be used after a single dash.
|
|
func IDVarP(fs *pflag.FlagSet, p *platform.ID, name, shorthand string, value platform.ID, usage string) {
|
|
fs.VarP(newIDValue(value, p), name, shorthand, usage)
|
|
}
|
|
|
|
type OrgBucket struct {
|
|
Org platform.ID
|
|
Bucket platform.ID
|
|
}
|
|
|
|
func (o *OrgBucket) AddFlags(cmd *cobra.Command) {
|
|
fs := cmd.Flags()
|
|
IDVar(fs, &o.Org, "org-id", platform.InvalidID(), "organization id")
|
|
IDVar(fs, &o.Bucket, "bucket-id", platform.InvalidID(), "bucket id")
|
|
}
|
|
|
|
func (o *OrgBucket) OrgBucketID() (orgID, bucketID platform.ID) {
|
|
return o.Org, o.Bucket
|
|
}
|
|
|
|
func (o *OrgBucket) Name() [platform.IDLength]byte {
|
|
// TODO: FIX THIS
|
|
panic("TODO: Fix")
|
|
}
|