Add sort support, can use every field
This commit is contained in:
306
cmd/struct.go
306
cmd/struct.go
@ -1,5 +1,7 @@
|
||||
package cmd
|
||||
|
||||
|
||||
// To allow sorting, just duplicate fields in JailSort below
|
||||
type Jail struct {
|
||||
Name string
|
||||
InternalName string
|
||||
@ -15,6 +17,11 @@ type Jail struct {
|
||||
|
||||
// iocage struct as stored in config.json
|
||||
// CONFIG_VERSION = 27
|
||||
//
|
||||
// Fields in this struct are acquired by their name using reflection
|
||||
// So these char are forbidden for field name: -+.
|
||||
//
|
||||
// To allow sorting, just duplicate fields in JailConfigSort below
|
||||
type JailConfig struct {
|
||||
Config_version string `json:"CONFIG_VERSION"`
|
||||
Allow_chflags int `json:"allow_chflags"`
|
||||
@ -155,3 +162,302 @@ type JailConfig struct {
|
||||
Writeiops string `json:"writeiops"`
|
||||
}
|
||||
|
||||
// This struct hold "sort by jail fields" functions
|
||||
type lessFunc func(j1 *Jail, j2 *Jail) bool
|
||||
|
||||
// Fields in this struct are acquired by their name using reflection
|
||||
// So these char are forbidden for field name: -+.
|
||||
//
|
||||
type JailSort struct {
|
||||
NameInc lessFunc
|
||||
NameDec lessFunc
|
||||
InternalNameInc lessFunc
|
||||
InternalNameDec lessFunc
|
||||
JIDInc lessFunc
|
||||
JIDDec lessFunc
|
||||
RootPathInc lessFunc
|
||||
RootPathDec lessFunc
|
||||
ConfigPathInc lessFunc
|
||||
ConfigPathDec lessFunc
|
||||
RunningInc lessFunc
|
||||
RunningDec lessFunc
|
||||
ZpoolInc lessFunc
|
||||
ZpoolDec lessFunc
|
||||
Config JailConfigSort
|
||||
}
|
||||
|
||||
|
||||
type JailConfigSort struct {
|
||||
Config_versionInc lessFunc
|
||||
Config_versionDec lessFunc
|
||||
Allow_chflagsInc lessFunc
|
||||
Allow_chflagsDec lessFunc
|
||||
Allow_mlockInc lessFunc
|
||||
Allow_mlockDec lessFunc
|
||||
Allow_mountInc lessFunc
|
||||
Allow_mountDec lessFunc
|
||||
Allow_mount_devfsInc lessFunc
|
||||
Allow_mount_devfsDec lessFunc
|
||||
Allow_mount_fusefsInc lessFunc
|
||||
Allow_mount_fusefsDec lessFunc
|
||||
Allow_mount_nullfsInc lessFunc
|
||||
Allow_mount_nullfsDec lessFunc
|
||||
Allow_mount_procfsInc lessFunc
|
||||
Allow_mount_procfsDec lessFunc
|
||||
Allow_mount_tmpfsInc lessFunc
|
||||
Allow_mount_tmpfsDec lessFunc
|
||||
Allow_mount_zfsInc lessFunc
|
||||
Allow_mount_zfsDec lessFunc
|
||||
Allow_quotasInc lessFunc
|
||||
Allow_quotasDec lessFunc
|
||||
Allow_raw_socketsInc lessFunc
|
||||
Allow_raw_socketsDec lessFunc
|
||||
Allow_set_hostnameInc lessFunc
|
||||
Allow_set_hostnameDec lessFunc
|
||||
Allow_socket_afInc lessFunc
|
||||
Allow_socket_afDec lessFunc
|
||||
Allow_sysvipcInc lessFunc
|
||||
Allow_sysvipcDec lessFunc
|
||||
Allow_tunInc lessFunc
|
||||
Allow_tunDec lessFunc
|
||||
Allow_vmmInc lessFunc
|
||||
Allow_vmmDec lessFunc
|
||||
Assign_localhostInc lessFunc
|
||||
Assign_localhostDec lessFunc
|
||||
AvailableInc lessFunc
|
||||
AvailableDec lessFunc
|
||||
BasejailInc lessFunc
|
||||
BasejailDec lessFunc
|
||||
BootInc lessFunc
|
||||
BootDec lessFunc
|
||||
BpfInc lessFunc
|
||||
BpfDec lessFunc
|
||||
Children_maxInc lessFunc
|
||||
Children_maxDec lessFunc
|
||||
Cloned_releaseInc lessFunc
|
||||
Cloned_releaseDec lessFunc
|
||||
CommentInc lessFunc
|
||||
CommentDec lessFunc
|
||||
CompressionInc lessFunc
|
||||
CompressionDec lessFunc
|
||||
CompressratioInc lessFunc
|
||||
CompressratioDec lessFunc
|
||||
CoredumpsizeInc lessFunc
|
||||
CoredumpsizeDec lessFunc
|
||||
CountInc lessFunc
|
||||
CountDec lessFunc
|
||||
CpusetInc lessFunc
|
||||
CpusetDec lessFunc
|
||||
CputimeInc lessFunc
|
||||
CputimeDec lessFunc
|
||||
DatasizeInc lessFunc
|
||||
DatasizeDec lessFunc
|
||||
DedupInc lessFunc
|
||||
DedupDec lessFunc
|
||||
DefaultrouterInc lessFunc
|
||||
DefaultrouterDec lessFunc
|
||||
Defaultrouter6Inc lessFunc
|
||||
Defaultrouter6Dec lessFunc
|
||||
DependsInc lessFunc
|
||||
DependsDec lessFunc
|
||||
Devfs_rulesetInc lessFunc
|
||||
Devfs_rulesetDec lessFunc
|
||||
DhcpInc lessFunc
|
||||
DhcpDec lessFunc
|
||||
Enforce_statfsInc lessFunc
|
||||
Enforce_statfsDec lessFunc
|
||||
Exec_cleanInc lessFunc
|
||||
Exec_cleanDec lessFunc
|
||||
Exec_createdInc lessFunc
|
||||
Exec_createdDec lessFunc
|
||||
Exec_fibInc lessFunc
|
||||
Exec_fibDec lessFunc
|
||||
Exec_jail_userInc lessFunc
|
||||
Exec_jail_userDec lessFunc
|
||||
Exec_poststartInc lessFunc
|
||||
Exec_poststartDec lessFunc
|
||||
Exec_poststopInc lessFunc
|
||||
Exec_poststopDec lessFunc
|
||||
Exec_prestartInc lessFunc
|
||||
Exec_prestartDec lessFunc
|
||||
Exec_prestopInc lessFunc
|
||||
Exec_prestopDec lessFunc
|
||||
Exec_startInc lessFunc
|
||||
Exec_startDec lessFunc
|
||||
Exec_stopInc lessFunc
|
||||
Exec_stopDec lessFunc
|
||||
Exec_system_jail_userInc lessFunc
|
||||
Exec_system_jail_userDec lessFunc
|
||||
Exec_system_userInc lessFunc
|
||||
Exec_system_userDec lessFunc
|
||||
Exec_timeoutInc lessFunc
|
||||
Exec_timeoutDec lessFunc
|
||||
Host_domainnameInc lessFunc
|
||||
Host_domainnameDec lessFunc
|
||||
Host_hostnameInc lessFunc
|
||||
Host_hostnameDec lessFunc
|
||||
Host_hostuuidInc lessFunc
|
||||
Host_hostuuidDec lessFunc
|
||||
Host_timeInc lessFunc
|
||||
Host_timeDec lessFunc
|
||||
HostidInc lessFunc
|
||||
HostidDec lessFunc
|
||||
Hostid_strict_checkInc lessFunc
|
||||
Hostid_strict_checkDec lessFunc
|
||||
InterfacesInc lessFunc
|
||||
InterfacesDec lessFunc
|
||||
Ip4Inc lessFunc
|
||||
Ip4Dec lessFunc
|
||||
Ip4_addrInc lessFunc
|
||||
Ip4_addrDec lessFunc
|
||||
Ip4_saddrselInc lessFunc
|
||||
Ip4_saddrselDec lessFunc
|
||||
Ip6Inc lessFunc
|
||||
Ip6Dec lessFunc
|
||||
Ip6_addrInc lessFunc
|
||||
Ip6_addrDec lessFunc
|
||||
Ip6_saddrselInc lessFunc
|
||||
Ip6_saddrselDec lessFunc
|
||||
Ip_hostnameInc lessFunc
|
||||
Ip_hostnameDec lessFunc
|
||||
Jail_zfsInc lessFunc
|
||||
Jail_zfsDec lessFunc
|
||||
Jail_zfs_datasetInc lessFunc
|
||||
Jail_zfs_datasetDec lessFunc
|
||||
Jail_zfs_mountpointInc lessFunc
|
||||
Jail_zfs_mountpointDec lessFunc
|
||||
Last_startedInc lessFunc
|
||||
Last_startedDec lessFunc
|
||||
Localhost_ipInc lessFunc
|
||||
Localhost_ipDec lessFunc
|
||||
Login_flagsInc lessFunc
|
||||
Login_flagsDec lessFunc
|
||||
Mac_prefixInc lessFunc
|
||||
Mac_prefixDec lessFunc
|
||||
MaxprocInc lessFunc
|
||||
MaxprocDec lessFunc
|
||||
MemorylockedInc lessFunc
|
||||
MemorylockedDec lessFunc
|
||||
MemoryuseInc lessFunc
|
||||
MemoryuseDec lessFunc
|
||||
Min_dyn_devfs_rulesetInc lessFunc
|
||||
Min_dyn_devfs_rulesetDec lessFunc
|
||||
Mount_devfsInc lessFunc
|
||||
Mount_devfsDec lessFunc
|
||||
Mount_fdescfsInc lessFunc
|
||||
Mount_fdescfsDec lessFunc
|
||||
Mount_linprocfsInc lessFunc
|
||||
Mount_linprocfsDec lessFunc
|
||||
Mount_procfsInc lessFunc
|
||||
Mount_procfsDec lessFunc
|
||||
MountpointInc lessFunc
|
||||
MountpointDec lessFunc
|
||||
MsgqqueuedInc lessFunc
|
||||
MsgqqueuedDec lessFunc
|
||||
MsgqsizeInc lessFunc
|
||||
MsgqsizeDec lessFunc
|
||||
NatInc lessFunc
|
||||
NatDec lessFunc
|
||||
Nat_backendInc lessFunc
|
||||
Nat_backendDec lessFunc
|
||||
Nat_forwardsInc lessFunc
|
||||
Nat_forwardsDec lessFunc
|
||||
Nat_interfaceInc lessFunc
|
||||
Nat_interfaceDec lessFunc
|
||||
Nat_prefixInc lessFunc
|
||||
Nat_prefixDec lessFunc
|
||||
NmsgqInc lessFunc
|
||||
NmsgqDec lessFunc
|
||||
NotesInc lessFunc
|
||||
NotesDec lessFunc
|
||||
NsemInc lessFunc
|
||||
NsemDec lessFunc
|
||||
NsemopInc lessFunc
|
||||
NsemopDec lessFunc
|
||||
NshmInc lessFunc
|
||||
NshmDec lessFunc
|
||||
NthrInc lessFunc
|
||||
NthrDec lessFunc
|
||||
OpenfilesInc lessFunc
|
||||
OpenfilesDec lessFunc
|
||||
OriginInc lessFunc
|
||||
OriginDec lessFunc
|
||||
OwnerInc lessFunc
|
||||
OwnerDec lessFunc
|
||||
PcpuInc lessFunc
|
||||
PcpuDec lessFunc
|
||||
Plugin_nameInc lessFunc
|
||||
Plugin_nameDec lessFunc
|
||||
Plugin_repositoryInc lessFunc
|
||||
Plugin_repositoryDec lessFunc
|
||||
PriorityInc lessFunc
|
||||
PriorityDec lessFunc
|
||||
PseudoterminalsInc lessFunc
|
||||
PseudoterminalsDec lessFunc
|
||||
QuotaInc lessFunc
|
||||
QuotaDec lessFunc
|
||||
ReadbpsInc lessFunc
|
||||
ReadbpsDec lessFunc
|
||||
ReadiopsInc lessFunc
|
||||
ReadiopsDec lessFunc
|
||||
ReleaseInc lessFunc
|
||||
ReleaseDec lessFunc
|
||||
ReservationInc lessFunc
|
||||
ReservationDec lessFunc
|
||||
ResolverInc lessFunc
|
||||
ResolverDec lessFunc
|
||||
RlimitsInc lessFunc
|
||||
RlimitsDec lessFunc
|
||||
RtsoldInc lessFunc
|
||||
RtsoldDec lessFunc
|
||||
SecurelevelInc lessFunc
|
||||
SecurelevelDec lessFunc
|
||||
ShmsizeInc lessFunc
|
||||
ShmsizeDec lessFunc
|
||||
StacksizeInc lessFunc
|
||||
StacksizeDec lessFunc
|
||||
Stop_timeoutInc lessFunc
|
||||
Stop_timeoutDec lessFunc
|
||||
SwapuseInc lessFunc
|
||||
SwapuseDec lessFunc
|
||||
Sync_stateInc lessFunc
|
||||
Sync_stateDec lessFunc
|
||||
Sync_targetInc lessFunc
|
||||
Sync_targetDec lessFunc
|
||||
Sync_tgt_zpoolInc lessFunc
|
||||
Sync_tgt_zpoolDec lessFunc
|
||||
SysvmsgInc lessFunc
|
||||
SysvmsgDec lessFunc
|
||||
SysvsemInc lessFunc
|
||||
SysvsemDec lessFunc
|
||||
SysvshmInc lessFunc
|
||||
SysvshmDec lessFunc
|
||||
TemplateInc lessFunc
|
||||
TemplateDec lessFunc
|
||||
JailtypeInc lessFunc
|
||||
JailtypeDec lessFunc
|
||||
UsedInc lessFunc
|
||||
UsedDec lessFunc
|
||||
VmemoryuseInc lessFunc
|
||||
VmemoryuseDec lessFunc
|
||||
VnetInc lessFunc
|
||||
VnetDec lessFunc
|
||||
Vnet0_macInc lessFunc
|
||||
Vnet0_macDec lessFunc
|
||||
Vnet1_macInc lessFunc
|
||||
Vnet1_macDec lessFunc
|
||||
Vnet2_macInc lessFunc
|
||||
Vnet2_macDec lessFunc
|
||||
Vnet3_macInc lessFunc
|
||||
Vnet3_macDec lessFunc
|
||||
Vnet_default_interfaceInc lessFunc
|
||||
Vnet_default_interfaceDec lessFunc
|
||||
Vnet_interfacesInc lessFunc
|
||||
Vnet_interfacesDec lessFunc
|
||||
WallclockInc lessFunc
|
||||
WallclockDec lessFunc
|
||||
WritebpsInc lessFunc
|
||||
WritebpsDec lessFunc
|
||||
WriteiopsInc lessFunc
|
||||
WriteiopsDec lessFunc
|
||||
}
|
||||
|
Reference in New Issue
Block a user