mirror of
https://github.com/DeBrosOfficial/network.git
synced 2026-01-30 23:23:04 +00:00
44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package installers
|
|
|
|
import (
|
|
"io"
|
|
)
|
|
|
|
// Installer defines the interface for service installers
|
|
type Installer interface {
|
|
// Install downloads and installs the service binary
|
|
Install() error
|
|
|
|
// Configure initializes configuration for the service
|
|
Configure() error
|
|
|
|
// IsInstalled checks if the service is already installed
|
|
IsInstalled() bool
|
|
}
|
|
|
|
// BaseInstaller provides common functionality for all installers
|
|
type BaseInstaller struct {
|
|
arch string
|
|
logWriter io.Writer
|
|
}
|
|
|
|
// NewBaseInstaller creates a new base installer with common dependencies
|
|
func NewBaseInstaller(arch string, logWriter io.Writer) *BaseInstaller {
|
|
return &BaseInstaller{
|
|
arch: arch,
|
|
logWriter: logWriter,
|
|
}
|
|
}
|
|
|
|
// IPFSPeerInfo holds IPFS peer information for configuring Peering.Peers
|
|
type IPFSPeerInfo struct {
|
|
PeerID string
|
|
Addrs []string
|
|
}
|
|
|
|
// IPFSClusterPeerInfo contains IPFS Cluster peer information for cluster peer discovery
|
|
type IPFSClusterPeerInfo struct {
|
|
PeerID string // Cluster peer ID (different from IPFS peer ID)
|
|
Addrs []string // Cluster multiaddresses (e.g., /ip4/x.x.x.x/tcp/9098)
|
|
}
|