diff --git a/internal/osbuild2/chrony_stage.go b/internal/osbuild2/chrony_stage.go index 1e3e4835c..c2a2c765b 100644 --- a/internal/osbuild2/chrony_stage.go +++ b/internal/osbuild2/chrony_stage.go @@ -22,11 +22,8 @@ type ChronyConfigServer struct { Prefer *bool `json:"prefer,omitempty"` } -// Unexported struct for use in ChronyStageOptions's MarshalJSON() to prevent recursion -type chronyStageOptions struct { - Timeservers []string `json:"timeservers,omitempty"` - Servers []ChronyConfigServer `json:"servers,omitempty"` -} +// Unexported alias for use in ChronyStageOptions's MarshalJSON() to prevent recursion +type chronyStageOptions ChronyStageOptions func (o ChronyStageOptions) MarshalJSON() ([]byte, error) { if (len(o.Timeservers) != 0 && len(o.Servers) != 0) || (len(o.Timeservers) == 0 && len(o.Servers) == 0) { diff --git a/internal/osbuild2/cloud_init_stage.go b/internal/osbuild2/cloud_init_stage.go index 4e1858b69..0d6ca9cfc 100644 --- a/internal/osbuild2/cloud_init_stage.go +++ b/internal/osbuild2/cloud_init_stage.go @@ -23,10 +23,8 @@ type CloudInitConfigFile struct { SystemInfo *CloudInitConfigSystemInfo `json:"system_info,omitempty"` } -// Unexported struct for use in CloudInitConfigFile's MarshalJSON() to prevent recursion -type cloudInitConfigFile struct { - SystemInfo *CloudInitConfigSystemInfo `json:"system_info,omitempty"` -} +// Unexported alias for use in CloudInitConfigFile's MarshalJSON() to prevent recursion +type cloudInitConfigFile CloudInitConfigFile func (c CloudInitConfigFile) MarshalJSON() ([]byte, error) { if c.SystemInfo == nil { @@ -41,10 +39,8 @@ type CloudInitConfigSystemInfo struct { DefaultUser *CloudInitConfigDefaultUser `json:"default_user,omitempty"` } -// Unexported struct for use in CloudInitConfigSystemInfo's MarshalJSON() to prevent recursion -type cloudInitConfigSystemInfo struct { - DefaultUser *CloudInitConfigDefaultUser `json:"default_user,omitempty"` -} +// Unexported alias for use in CloudInitConfigSystemInfo's MarshalJSON() to prevent recursion +type cloudInitConfigSystemInfo CloudInitConfigSystemInfo func (si CloudInitConfigSystemInfo) MarshalJSON() ([]byte, error) { if si.DefaultUser == nil { @@ -59,10 +55,8 @@ type CloudInitConfigDefaultUser struct { Name string `json:"name,omitempty"` } -// Unexported struct for use in CloudInitConfigDefaultUser's MarshalJSON() to prevent recursion -type cloudInitConfigDefaultUser struct { - Name string `json:"name,omitempty"` -} +// Unexported alias for use in CloudInitConfigDefaultUser's MarshalJSON() to prevent recursion +type cloudInitConfigDefaultUser CloudInitConfigDefaultUser func (du CloudInitConfigDefaultUser) MarshalJSON() ([]byte, error) { if du.Name == "" { diff --git a/internal/osbuild2/dracut_conf_stage.go b/internal/osbuild2/dracut_conf_stage.go index 077c116d1..776d9cfb8 100644 --- a/internal/osbuild2/dracut_conf_stage.go +++ b/internal/osbuild2/dracut_conf_stage.go @@ -54,41 +54,8 @@ type DracutConfigFile struct { Reproducible *bool `json:"reproducible,omitempty"` } -// Unexported struct for use in DracutConfigFile MarshalJSON() to prevent recursion -type dracutConfigFile struct { - // Compression method for the initramfs - Compress string `json:"compress,omitempty"` - - // Exact list of dracut modules to use - Modules []string `json:"dracutmodules,omitempty"` - - // Additional dracut modules to include - AddModules []string `json:"add_dracutmodules,omitempty"` - - // Dracut modules to not include - OmitModules []string `json:"omit_dracutmodules,omitempty"` - - // Kernel modules to exclusively include - Drivers []string `json:"drivers,omitempty"` - - // Add a specific kernel module - AddDrivers []string `json:"add_drivers,omitempty"` - - // Add driver and ensure that they are tried to be loaded - ForceDrivers []string `json:"force_drivers,omitempty"` - - // Kernel filesystem modules to exclusively include - Filesystems []string `json:"filesystems,omitempty"` - - // Install the specified files - Install []string `json:"install_items,omitempty"` - - // Combine early microcode with the initramfs - EarlyMicrocode *bool `json:"early_microcode,omitempty"` - - // Create reproducible images - Reproducible *bool `json:"reproducible,omitempty"` -} +// Unexported alias for use in DracutConfigFile MarshalJSON() to prevent recursion +type dracutConfigFile DracutConfigFile func (c DracutConfigFile) MarshalJSON() ([]byte, error) { if c.Compress == "" && diff --git a/internal/osbuild2/keymap_stage.go b/internal/osbuild2/keymap_stage.go index c480ff05a..3cbf6d5dd 100644 --- a/internal/osbuild2/keymap_stage.go +++ b/internal/osbuild2/keymap_stage.go @@ -23,10 +23,8 @@ type X11KeymapOptions struct { Layouts []string `json:"layouts"` } -// Unexported struct for use in X11KeymapOptions's MarshalJSON() to prevent recursion -type x11KeymapOptions struct { - Layouts []string `json:"layouts"` -} +// Unexported alias for use in X11KeymapOptions's MarshalJSON() to prevent recursion +type x11KeymapOptions X11KeymapOptions func (o X11KeymapOptions) MarshalJSON() ([]byte, error) { if len(o.Layouts) == 0 { diff --git a/internal/osbuild2/systemd_logind_stage.go b/internal/osbuild2/systemd_logind_stage.go index cc0c88522..6e13cdae3 100644 --- a/internal/osbuild2/systemd_logind_stage.go +++ b/internal/osbuild2/systemd_logind_stage.go @@ -30,12 +30,8 @@ type SystemdLogindConfigLoginSection struct { NAutoVT *int `json:"NAutoVT,omitempty"` } -// Unexported struct for use in SystemdLogindConfigLoginSection's MarshalJSON() to prevent recursion -type systemdLogindConfigLoginSection struct { - // Configures how many virtual terminals (VTs) to allocate by default - // The option is optional, but zero is a valid value - NAutoVT *int `json:"NAutoVT,omitempty"` -} +// Unexported alias for use in SystemdLogindConfigLoginSection's MarshalJSON() to prevent recursion +type systemdLogindConfigLoginSection SystemdLogindConfigLoginSection func (s SystemdLogindConfigLoginSection) MarshalJSON() ([]byte, error) { if s.NAutoVT == nil {