config

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: May 21, 2020 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package config defines the structure of the configuration for the `dev` tool. I expect it to be YAML, but am providing support for JSON via the struct tags to keep the options open.

There's a global configuration instance which should be populated by the controller and consumed from all other parts of the view or controller layers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Dev

type Dev struct {
	Client   DevClient   `json:"client" yaml:"client"`
	Defaults DevDefaults `json:"defaults" yaml:"defaults"`
}

Dev specifies the configurations available for the CLI tool itself

type DevClient

type DevClient struct {
	Database      DevClientDatabase      `json:"database" yaml:"database"`
	Notifications DevClientNotifications `json:"notifications" yaml:"notifications"`
}

DevClient holds configurations related to the CLI tool

type DevClientDatabase

type DevClientDatabase struct {
	Path string `json:"path" yaml:"path"`
}

DevClientDatabase holds configurations related to the data persistence mechanism of the CLI tool

type DevClientNotifications

type DevClientNotifications struct {
	Telegram DevClientNotificationsTelegram `json:"telegram" yaml:"telegram"`
}

DevClientNotifications holds configurations related to the notifications mechanisms of the CLI tool

type DevClientNotificationsTelegram

type DevClientNotificationsTelegram struct {
	Token string `json:"token" yaml:"token"`
	ID    string `json:"id" yaml:"id"`
}

DevClientNotificationsTelegram holds configurations related to the telegram integration for sending notifications

type DevDefaults

type DevDefaults struct {
	// Account defines the default platform to use for account
	Account string `json:"account" yaml:"account"`
	// Notifications defines the default platform to use for notifications
	Notifications string `json:"notifications" yaml:"notifications"`
	// Work defines the default platform to use for work
	Work string `json:"work" yaml:"work"`
}

DevDefaults specifies default selections when running `dev <verb> <noum> <this>` commands

type File

type File struct {
	Dev          Dev          `json:"dev" yaml:"dev"`
	Links        Links        `json:"links" yaml:"links"`
	Networks     Networks     `json:"networks" yaml:"networks"`
	Platforms    Platforms    `json:"platforms" yaml:"platforms"`
	Softwares    Softwares    `json:"softwares" yaml:"softwares"`
	Repositories Repositories `json:"repositories" yaml:"repositories"`
}
var Global *File

Global contains the global configuration usable by all CLI commands

func NewFromFile

func NewFromFile(filePath string) (*File, error)

NewFromFile is a convenience function that reads the configuration in from a file at the provided :filePath

func (*File) MergeWith

func (f *File) MergeWith(other *File)

MergeWith merges the current File configuration instance with a second provided :other File configuration instance, intention for this is to merge a local configuration with a global configuration

type Links []link.Link

type Networks

type Networks []network.Network

type Platforms

type Platforms struct {
	PivotalTracker pivotaltracker.Config `json:"pivotaltracker" yaml:"pivotaltracker"`
	Github         github.Config         `json:"github" yaml:"github"`
	Gitlab         gitlab.Config         `json:"gitlab" yaml:"gitlab"`
	Trello         trello.Config         `json:"trello" yaml:"trello"`
}

Platforms specifies the configurations available

func (Platforms) GetSanitized

func (p Platforms) GetSanitized() Platforms

GetSanitized returns a sanitised deep copy of the current Platforms instance

type Repositories

type Repositories []repository.Repository

type Softwares

type Softwares []software.Software

Jump to

Keyboard shortcuts

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