config

package
v0.0.0-...-e4696f9 Latest Latest
Warning

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

Go to latest
Published: Nov 23, 2014 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

package config implements the ipfs config file datastructures and utilities.

Index

Constants

View Source
const (
	// CheckError value for Version.Check to raise error and exit if version is obsolete
	CheckError = "error"

	// CheckWarn value for Version.Check to show warning message if version is obsolete
	CheckWarn = "warn"

	// CheckIgnore value for Version.Check to not perform update check
	CheckIgnore = "ignore"
)

supported Version.Check values

View Source
const CurrentVersionNumber = "0.1.7"

CurrentVersionNumber is the current application's version literal

View Source
const DefaultConfigFile = "config"

DefaultConfigFile is the filename of the configuration file

View Source
const DefaultDataStoreDirectory = "datastore"

DefaultDataStoreDirectory is the directory to store all the local IPFS data.

View Source
const DefaultPathRoot = "~/.go-ipfs"

DefaultPathRoot is the path to the default config dir location.

View Source
const EnvDir = "IPFS_DIR"

EnvDir is the environment variable used to change the path root.

Variables

View Source
var ErrUnknownAutoUpdateSetting = errors.New("unknown value for AutoUpdate")

ErrUnknownAutoUpdateSetting is returned when an unknown value is read from the config

View Source
var LogsDefaultDirectory = "logs"

LogsDefaultDirectory is the directory to store all IPFS event logs.

Functions

func DataStorePath

func DataStorePath(configroot string) (string, error)

DataStorePath returns the default data store path given a configuration root (set an empty string to have the default configuration root)

func Decode

func Decode(r io.Reader, value interface{}) error

Decode configuration with JSON

func Encode

func Encode(w io.Writer, value interface{}) error

Encode configuration with JSON

func Filename

func Filename(configroot string) (string, error)

Filename returns the configuration file path given a configuration root directory. If the configuration root directory is empty, use the default one

func HumanOutput

func HumanOutput(value interface{}) ([]byte, error)

HumanOutput gets a config value ready for printing

func LogsPath

func LogsPath(configroot string) (string, error)

LogsPath returns the default path for event logs given a configuration root (set an empty string to have the default configuration root)

func Marshal

func Marshal(value interface{}) ([]byte, error)

Marshal configuration with JSON

func Path

func Path(configroot, extension string) (string, error)

Path returns the path `extension` relative to the configuration root. If an empty string is provided for `configroot`, the default root is used.

func PathRoot

func PathRoot() (string, error)

PathRoot returns the default configuration root directory

func ReadConfigFile

func ReadConfigFile(filename string, cfg interface{}) error

ReadConfigFile reads the config from `filename` into `cfg`.

func ReadConfigKey

func ReadConfigKey(filename, key string) (interface{}, error)

ReadConfigKey retrieves only the value of a particular key

func RecordUpdateCheck

func RecordUpdateCheck(cfg *Config, filename string)

RecordUpdateCheck is called to record that an update check was performed, showing that the running version is the most recent one.

func Set

func Set(filename, key, value string) error

Set sets the value of a particular config key

func WriteConfigFile

func WriteConfigFile(filename string, cfg interface{}) error

WriteConfigFile writes the config from `cfg` into `filename`.

func WriteConfigKey

func WriteConfigKey(filename, key string, value interface{}) error

WriteConfigKey writes the value of a particular key

func WriteFile

func WriteFile(filename string, buf []byte) error

WriteFile writes the buffer at filename

Types

type Addresses

type Addresses struct {
	Swarm []string // addresses for the swarm network
	API   string   // address for the local API (RPC)
}

Addresses stores the (string) multiaddr addresses for the node.

type AutoUpdateSetting

type AutoUpdateSetting int

AutoUpdateSetting implements json.Unmarshaler to check values in config

const (
	AutoUpdateNever AutoUpdateSetting = iota // do not auto-update
	AutoUpdatePatch                          // only on new patch versions
	AutoUpdateMinor                          // on new minor or patch versions (Default)
	AutoUpdateMajor                          // on all, even Major, version changes
)

AutoUpdateSetting values

func (AutoUpdateSetting) MarshalJSON

func (s AutoUpdateSetting) MarshalJSON() ([]byte, error)

MarshalJSON converts the value back to JSON string

func (AutoUpdateSetting) String

func (s AutoUpdateSetting) String() string

String converts valye to human readable string

func (*AutoUpdateSetting) UnmarshalJSON

func (s *AutoUpdateSetting) UnmarshalJSON(in []byte) error

UnmarshalJSON checks the input against known strings

type BootstrapPeer

type BootstrapPeer struct {
	Address string
	PeerID  string // until multiaddr supports ipfs, use another field.
}

BootstrapPeer is a peer used to bootstrap the network.

func (*BootstrapPeer) String

func (bp *BootstrapPeer) String() string

type Config

type Config struct {
	Identity  Identity         // local node's peer identity
	Datastore Datastore        // local node's storage
	Addresses Addresses        // local node's addresses
	Mounts    Mounts           // local node's mount points
	Version   Version          // local node's version management
	Bootstrap []*BootstrapPeer // local nodes's bootstrap peers
	Tour      Tour             // local node's tour position
	Logs      Logs             // local node's event log configuration
}

Config is used to load IPFS config files.

func Load

func Load(filename string) (*Config, error)

Load reads given file and returns the read config, or error.

type Datastore

type Datastore struct {
	Type string
	Path string
}

Datastore tracks the configuration of the datastore.

type Identity

type Identity struct {
	PeerID  string
	PrivKey string
}

Identity tracks the configuration of the local node's identity.

func (*Identity) DecodePrivateKey

func (i *Identity) DecodePrivateKey(passphrase string) (crypto.PrivateKey, error)

DecodePrivateKey is a helper to decode the users PrivateKey

type Logs

type Logs struct {
	Filename   string
	MaxSizeMB  uint64
	MaxBackups uint64
	MaxAgeDays uint64
}

Logs tracks the configuration of the event logger

type Mounts

type Mounts struct {
	IPFS string
	IPNS string
}

Mounts stores the (string) mount points

type Tour

type Tour struct {
	Last string // last tour topic read

}

Tour stores the ipfs tour read-list and resume point

type Version

type Version struct {
	// Current is the ipfs version for which config was generated
	Current string

	// Check signals how to react on updates:
	// - "ignore" for not checking
	// - "warn" for issuing a warning and proceeding
	// - "error" for exiting with an error
	Check string

	// CheckDate is a timestamp for the last time API endpoint was checked for updates
	CheckDate time.Time

	// CheckPeriod is the time duration over which the update check will not be performed
	// (Note: cannot use time.Duration because marshalling with json breaks it)
	CheckPeriod string

	// AutoUpdate is optional
	AutoUpdate AutoUpdateSetting
}

Version regulates checking if the most recent version is run

func VersionDefaultValue

func VersionDefaultValue() Version

VersionDefaultValue returns the default version config value (for init).

func (*Version) ShouldCheckForUpdate

func (v *Version) ShouldCheckForUpdate() bool

ShouldCheckForUpdate returns if update check API endpoint is needed for this specific runtime

Jump to

Keyboard shortcuts

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