cli

package
v1.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	FlagUsername = &cli.StringFlag{
		Name:    "username",
		Usage:   "Your Vodafone username",
		EnvVars: []string{"VODAFONE_USERNAME"},
	}
	FlagPassword = &cli.StringFlag{
		Name:    "password",
		Usage:   "Your Vodafone password",
		EnvVars: []string{"VODAFONE_PASSWORD"},
	}
	FlagDirectory = &cli.PathFlag{
		Name:    "directory",
		Usage:   "The directory to store the invoices in",
		EnvVars: []string{"VODAFONE_DUMP_DIRECTORY"},
	}
	FlagPaperlessURL = &cli.StringFlag{
		Name:    "paperless-url",
		Usage:   "The URL of the paperless instance to upload the invoices to",
		EnvVars: []string{"PAPERLESS_URL"},
	}
	FlagPaperlessToken = &cli.StringFlag{
		Name:    "paperless-token",
		Usage:   "The token to use for authentication against paperless",
		EnvVars: []string{"PAPERLESS_TOKEN"},
	}
	FlagPaperlessUsername = &cli.StringFlag{
		Name:    "paperless-username",
		Usage:   "The username to use for authentication against paperless. Will be ignored if token is set.",
		EnvVars: []string{"PAPERLESS_USERNAME"},
	}
	FlagPaperlessPassword = &cli.StringFlag{
		Name:    "paperless-password",
		Usage:   "The password to use for authentication against paperless. Will be ignored if token is set.",
		EnvVars: []string{"PAPERLESS_PASSWORD"},
	}
	FlagPaperlessCorrespondent = &cli.StringFlag{
		Name:    "paperless-correspondent",
		Usage:   "The ID of correspondent to use for the invoices",
		EnvVars: []string{"PAPERLESS_CORRESPONDENT"},
	}
	FlagPaperlessDocumentType = &cli.StringFlag{
		Name:    "paperless-document-type",
		Usage:   "The ID of the document type to use for the invoices",
		EnvVars: []string{"PAPERLESS_DOCUMENT_TYPE"},
	}
)
View Source
var DumpInvoicesCommand = &cli.Command{
	Name:  "dump",
	Usage: "Dump all invoices to the specified directory.",
	Flags: []cli.Flag{
		FlagUsername,
		FlagPassword,
		FlagDirectory,
	},
	Action: func(c *cli.Context) error {
		return DumpInvoice(
			c.String(FlagUsername.Name),
			c.String(FlagPassword.Name),
			c.Path(FlagDirectory.Name),
		)
	},
}
View Source
var DumpToPaperlessCommand = &cli.Command{
	Name:  "dump-to-paperless",
	Usage: "Dumps all invoices to paperless / paperless ngx.",
	Flags: []cli.Flag{
		FlagUsername,
		FlagPassword,
		FlagPaperlessURL,
		FlagPaperlessToken,
		FlagPaperlessUsername,
		FlagPaperlessPassword,
		FlagPaperlessCorrespondent,
		FlagPaperlessDocumentType,
	},
	Action: func(c *cli.Context) error {
		return DumpToPaperless(
			c.String(FlagUsername.Name),
			c.String(FlagPassword.Name),
			&PaperlessDumpConfig{
				Correspondent: c.String(FlagPaperlessCorrespondent.Name),
				DocumentType:  c.String(FlagPaperlessDocumentType.Name),
				Config: &paperless.Config{
					URL:      c.String(FlagPaperlessURL.Name),
					APIKey:   c.String(FlagPaperlessToken.Name),
					Username: c.String(FlagPaperlessUsername.Name),
					Password: c.String(FlagPaperlessPassword.Name),
				},
			},
		)
	},
}
View Source
var LoginTestCommand = &cli.Command{
	Name:  "login-test",
	Usage: "Test your login credentials",
	Flags: []cli.Flag{
		FlagUsername,
		FlagPassword,
	},
	Action: func(c *cli.Context) error {
		_, err := login.Do(c.String(FlagUsername.Name), c.String(FlagPassword.Name))
		if err != nil {
			fmt.Println("Login failed")
			fmt.Println(err)
		} else {
			fmt.Println("Login successful")
		}
		return err
	},
}
View Source
var UserInfoCommand = &cli.Command{
	Name:  "user-info",
	Usage: "List information about the logged in users.",
	Flags: []cli.Flag{
		FlagUsername,
		FlagPassword,
	},
	Action: func(c *cli.Context) error {
		loginData, err := login.Do(c.String(FlagUsername.Name), c.String(FlagPassword.Name))
		if err != nil {
			fmt.Println("Login failed")
			return err
		}

		userInfo, err := login.GetUserInfo(loginData)
		if err != nil {
			fmt.Println("Failed to retrieve user info")
			return err
		}

		fmt.Println(userInfo.HumanReadableString())

		return err
	},
}

Functions

func DumpInvoice

func DumpInvoice(username string, password string, directory string) error

func DumpToPaperless

func DumpToPaperless(username string, password string, paperlessInfo *PaperlessDumpConfig) error

func GetCLI

func GetCLI(Version string) *cli.App

Types

type PaperlessDumpConfig

type PaperlessDumpConfig struct {
	Config        *paperless.Config
	Correspondent string
	DocumentType  string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL