summaryrefslogtreecommitdiffstats
path: root/templates/feature/agl-profile-hud
diff options
context:
space:
mode:
authorPierre Marzin <pierre.marzin@iot.bzh>2019-07-12 11:27:52 +0200
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2019-07-23 21:21:56 +0000
commitda5cd08767ef694dfd4251743f16dd59b85e495b (patch)
treec84bcff0ff675f6fdad1715ab19125e44651c9be /templates/feature/agl-profile-hud
parent99e140275e93c642e167833ea4c6b60ba219a76c (diff)
ebisu: Add the support of a custom setup script
Used to customise a setup to add specific stuff. Bug-AGL: SPEC-2564 Change-Id: I8d18d026aaeb7c35a53164ea2f1a62f510ad4217 Signed-off-by: Pierre Marzin <pierre.marzin@iot.bzh>
Diffstat (limited to 'templates/feature/agl-profile-hud')
0 files changed, 0 insertions, 0 deletions
r.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
package folder

// FolderType definition
type FolderType int

const (
	TypePathMap   = 1
	TypeCloudSync = 2
	TypeCifsSmb   = 3
)

// Folder Status definition
const (
	StatusErrorConfig = "ErrorConfig"
	StatusDisable     = "Disable"
	StatusEnable      = "Enable"
	StatusPause       = "Pause"
	StatusSyncing     = "Syncing"
)

type EventCBData map[string]interface{}
type EventCB func(cfg *FolderConfig, data *EventCBData)

// IFOLDER Folder interface
type IFOLDER interface {
	NewUID(suffix string) string                              // Get a new folder UUID
	Add(cfg FolderConfig) (*FolderConfig, error)              // Add a new folder
	GetConfig() FolderConfig                                  // Get folder public configuration
	GetFullPath(dir string) string                            // Get folder full path
	ConvPathCli2Svr(s string) string                          // Convert path from Client to Server
	ConvPathSvr2Cli(s string) string                          // Convert path from Server to Client
	Remove() error                                            // Remove a folder
	RegisterEventChange(cb *EventCB, data *EventCBData) error // Request events registration (sent through WS)
	UnRegisterEventChange() error                             // Un-register events
	Sync() error                                              // Force folder files synchronization
	IsInSync() (bool, error)                                  // Check if folder files are in-sync
}

// FolderConfig is the config for one folder
type FolderConfig struct {
	ID         string     `json:"id"`
	Label      string     `json:"label"`
	ClientPath string     `json:"path"`
	Type       FolderType `json:"type"`
	Status     string     `json:"status"`
	IsInSync   bool       `json:"isInSync"`
	DefaultSdk string     `json:"defaultSdk"`

	// Not exported fields from REST API point of view
	RootPath string `json:"-"`

	// FIXME: better to define an equivalent to union data and then implement
	// UnmarshalJSON/MarshalJSON to decode/encode according to Type value
	// Data interface{} `json:"data"`

	// Specific data depending on which Type is used
	DataPathMap   PathMapConfig   `json:"dataPathMap,omitempty"`
	DataCloudSync CloudSyncConfig `json:"dataCloudSync,omitempty"`
}

// PathMapConfig Path mapping specific data
type PathMapConfig struct {
	ServerPath string `json:"serverPath"`
}

// CloudSyncConfig CloudSync (AKA Syncthing) specific data
type CloudSyncConfig struct {
	SyncThingID   string `json:"syncThingID"`
	BuilderSThgID string `json:"builderSThgID"`
}