Skip to content

Commit 8c1f6ed

Browse files
committed
generate: add FreeBSD support
Signed-off-by: Doug Rabson <dfr@rabson.org>
1 parent edf4cb3 commit 8c1f6ed

2 files changed

Lines changed: 165 additions & 0 deletions

File tree

generate/config.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,3 +192,24 @@ func (g *Generator) initConfigVM() {
192192
g.Config.VM = &rspec.VM{}
193193
}
194194
}
195+
196+
func (g *Generator) initConfigFreeBSD() {
197+
g.initConfig()
198+
if g.Config.FreeBSD == nil {
199+
g.Config.FreeBSD = &rspec.FreeBSD{}
200+
}
201+
}
202+
203+
func (g *Generator) initConfigFreeBSDJail() {
204+
g.initConfigFreeBSD()
205+
if g.Config.FreeBSD.Jail == nil {
206+
g.Config.FreeBSD.Jail = &rspec.FreeBSDJail{}
207+
}
208+
}
209+
210+
func (g *Generator) initConfigFreeBSDJailAllow() {
211+
g.initConfigFreeBSDJail()
212+
if g.Config.FreeBSD.Jail.Allow == nil {
213+
g.Config.FreeBSD.Jail.Allow = &rspec.FreeBSDJailAllow{}
214+
}
215+
}

generate/generate.go

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ func New(os string) (generator Generator, err error) {
260260
Options: []string{},
261261
},
262262
}
263+
config.FreeBSD = &rspec.FreeBSD{}
263264
}
264265

265266
envCache := map[string]int{}
@@ -1879,3 +1880,146 @@ func (g *Generator) SetWindowsServicing(servicing bool) {
18791880
g.initConfigWindows()
18801881
g.Config.Windows.Servicing = servicing
18811882
}
1883+
1884+
// AddFreeBSDDevice - add a device into g.Config.FreeBSD.Devices
1885+
func (g *Generator) AddFreeBSDDevice(device rspec.FreeBSDDevice) {
1886+
g.initConfigFreeBSD()
1887+
1888+
for i, dev := range g.Config.FreeBSD.Devices {
1889+
if dev.Path == device.Path {
1890+
g.Config.FreeBSD.Devices[i] = device
1891+
return
1892+
}
1893+
}
1894+
1895+
g.Config.FreeBSD.Devices = append(g.Config.FreeBSD.Devices, device)
1896+
}
1897+
1898+
// RemoveDevice remove a device from g.Config.Linux.Devices
1899+
func (g *Generator) RemoveFreeBSDDevice(path string) {
1900+
if g.Config == nil || g.Config.FreeBSD == nil || g.Config.FreeBSD.Devices == nil {
1901+
return
1902+
}
1903+
1904+
for i, device := range g.Config.FreeBSD.Devices {
1905+
if device.Path == path {
1906+
g.Config.FreeBSD.Devices = append(g.Config.FreeBSD.Devices[:i], g.Config.FreeBSD.Devices[i+1:]...)
1907+
return
1908+
}
1909+
}
1910+
}
1911+
1912+
func (g *Generator) SetFreeBSDJailParent(id string) error {
1913+
g.initConfigFreeBSDJail()
1914+
p := g.Config.FreeBSD.Jail.Parent
1915+
if p != "" && p != id {
1916+
return fmt.Errorf("Jail parent is already set to %s", p)
1917+
}
1918+
g.Config.FreeBSD.Jail.Parent = id
1919+
return nil
1920+
}
1921+
1922+
func (g *Generator) SetFreeBSDJailHost(val rspec.FreeBSDSharing) {
1923+
g.initConfigFreeBSDJail()
1924+
g.Config.FreeBSD.Jail.Host = val
1925+
}
1926+
1927+
func (g *Generator) SetFreeBSDJailIp4(val rspec.FreeBSDSharing) {
1928+
g.initConfigFreeBSDJail()
1929+
g.Config.FreeBSD.Jail.Ip4 = val
1930+
}
1931+
1932+
func (g *Generator) SetFreeBSDJailIp4Addr(val []string) {
1933+
g.initConfigFreeBSDJail()
1934+
g.Config.FreeBSD.Jail.Ip4Addr = val
1935+
}
1936+
1937+
func (g *Generator) SetFreeBSDJailIp6(val rspec.FreeBSDSharing) {
1938+
g.initConfigFreeBSDJail()
1939+
g.Config.FreeBSD.Jail.Ip6 = val
1940+
}
1941+
1942+
func (g *Generator) SetFreeBSDJailIp6Addr(val []string) {
1943+
g.initConfigFreeBSDJail()
1944+
g.Config.FreeBSD.Jail.Ip6Addr = val
1945+
}
1946+
1947+
func (g *Generator) SetFreeBSDJailVnet(val rspec.FreeBSDSharing) {
1948+
g.initConfigFreeBSDJail()
1949+
g.Config.FreeBSD.Jail.Vnet = val
1950+
}
1951+
1952+
func (g *Generator) SetFreeBSDJailInterface(val string) {
1953+
g.initConfigFreeBSDJail()
1954+
g.Config.FreeBSD.Jail.Interface = val
1955+
}
1956+
1957+
func (g *Generator) SetFreeBSDJailVnetInterfaces(val []string) {
1958+
g.initConfigFreeBSDJail()
1959+
g.Config.FreeBSD.Jail.VnetInterfaces = val
1960+
}
1961+
1962+
func (g *Generator) SetFreeBSDJailSysVMsg(val rspec.FreeBSDSharing) {
1963+
g.initConfigFreeBSDJail()
1964+
g.Config.FreeBSD.Jail.SysVMsg = val
1965+
}
1966+
1967+
func (g *Generator) SetFreeBSDJailSysVSem(val rspec.FreeBSDSharing) {
1968+
g.initConfigFreeBSDJail()
1969+
g.Config.FreeBSD.Jail.SysVSem = val
1970+
}
1971+
1972+
func (g *Generator) SetFreeBSDJailSysVShm(val rspec.FreeBSDSharing) {
1973+
g.initConfigFreeBSDJail()
1974+
g.Config.FreeBSD.Jail.SysVShm = val
1975+
}
1976+
1977+
func (g *Generator) SetFreeBSDJailEnforceStatfs(val int) {
1978+
g.initConfigFreeBSDJail()
1979+
g.Config.FreeBSD.Jail.EnforceStatfs = &val
1980+
}
1981+
1982+
func (g *Generator) SetFreeBSDJailAllowSetHostname(val bool) {
1983+
g.initConfigFreeBSDJailAllow()
1984+
g.Config.FreeBSD.Jail.Allow.SetHostname = val
1985+
}
1986+
1987+
func (g *Generator) SetFreeBSDJailAllowRawSockets(val bool) {
1988+
g.initConfigFreeBSDJailAllow()
1989+
g.Config.FreeBSD.Jail.Allow.RawSockets = val
1990+
}
1991+
1992+
func (g *Generator) SetFreeBSDJailAllowChflags(val bool) {
1993+
g.initConfigFreeBSDJailAllow()
1994+
g.Config.FreeBSD.Jail.Allow.Chflags = val
1995+
}
1996+
1997+
func (g *Generator) SetFreeBSDJailAllowQuotas(val bool) {
1998+
g.initConfigFreeBSDJailAllow()
1999+
g.Config.FreeBSD.Jail.Allow.Quotas = val
2000+
}
2001+
2002+
func (g *Generator) SetFreeBSDJailAllowSocketAf(val bool) {
2003+
g.initConfigFreeBSDJailAllow()
2004+
g.Config.FreeBSD.Jail.Allow.SocketAf = val
2005+
}
2006+
2007+
func (g *Generator) SetFreeBSDJailAllowMlock(val bool) {
2008+
g.initConfigFreeBSDJailAllow()
2009+
g.Config.FreeBSD.Jail.Allow.Mlock = val
2010+
}
2011+
2012+
func (g *Generator) SetFreeBSDJailAllowReservedPorts(val bool) {
2013+
g.initConfigFreeBSDJailAllow()
2014+
g.Config.FreeBSD.Jail.Allow.ReservedPorts = val
2015+
}
2016+
2017+
func (g *Generator) SetFreeBSDJailAllowSuser(val bool) {
2018+
g.initConfigFreeBSDJailAllow()
2019+
g.Config.FreeBSD.Jail.Allow.Suser = val
2020+
}
2021+
2022+
func (g *Generator) SetFreeBSDJailAllowMount(val []string) {
2023+
g.initConfigFreeBSDJailAllow()
2024+
g.Config.FreeBSD.Jail.Allow.Mount = val
2025+
}

0 commit comments

Comments
 (0)