mirror of
https://github.com/miguelmota/cointop
synced 2024-11-14 18:12:57 +00:00
69 lines
2.1 KiB
Go
69 lines
2.1 KiB
Go
package cmd
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/miguelmota/cointop/cointop"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
// HoldingsCmd ...
|
|
func HoldingsCmd() *cobra.Command {
|
|
var help bool
|
|
var total bool
|
|
var noCache bool
|
|
var config string
|
|
var sortBy string
|
|
var sortDesc bool
|
|
var format string = "table"
|
|
var humanReadable bool
|
|
var filter []string
|
|
|
|
holdingsCmd := &cobra.Command{
|
|
Use: "holdings",
|
|
Short: "Displays current holdings",
|
|
Long: `The holdings command shows your current holdings`,
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
if help {
|
|
return cmd.Help()
|
|
}
|
|
|
|
ct, err := cointop.NewCointop(&cointop.Config{
|
|
ConfigFilepath: config,
|
|
CacheDir: cointop.DefaultCacheDir,
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
if total {
|
|
return ct.PrintTotalHoldings(&cointop.TablePrintOptions{
|
|
HumanReadable: humanReadable,
|
|
Format: format,
|
|
Filter: filter,
|
|
})
|
|
}
|
|
|
|
return ct.PrintHoldingsTable(&cointop.TablePrintOptions{
|
|
SortBy: sortBy,
|
|
SortDesc: sortDesc,
|
|
HumanReadable: humanReadable,
|
|
Format: format,
|
|
Filter: filter,
|
|
})
|
|
},
|
|
}
|
|
|
|
holdingsCmd.Flags().BoolVarP(&help, "help", "", help, "Help for holdings")
|
|
holdingsCmd.Flags().BoolVarP(&total, "total", "t", total, "Show total only")
|
|
holdingsCmd.Flags().BoolVarP(&noCache, "no-cache", "", noCache, "No cache")
|
|
holdingsCmd.Flags().BoolVarP(&humanReadable, "human", "h", humanReadable, "Human readable output")
|
|
holdingsCmd.Flags().StringVarP(&config, "config", "c", "", fmt.Sprintf("Config filepath. (default %s)", cointop.DefaultConfigFilepath))
|
|
holdingsCmd.Flags().StringVarP(&sortBy, "sort-by", "s", sortBy, `Sort by column. Options are "name", "symbol", "price", "holdings", "balance", "24h"`)
|
|
holdingsCmd.Flags().BoolVarP(&sortDesc, "sort-desc", "d", sortDesc, "Sort in descending order")
|
|
holdingsCmd.Flags().StringVarP(&format, "format", "", format, `Ouput format. Options are "table", "csv", "json"`)
|
|
holdingsCmd.Flags().StringSliceVarP(&filter, "filter", "f", filter, `Filter portfolio entries by coin name or symbol, comma separated. Example: "btc,eth,doge"`)
|
|
|
|
return holdingsCmd
|
|
}
|