@@ -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