generate directive lists from files

This commit is contained in:
Mark Oteiza 2016-05-07 15:49:25 -04:00
parent f74f3c8520
commit 63d64ad4e6

View File

@ -81,86 +81,11 @@
"Configuration sections for systemd 225.") "Configuration sections for systemd 225.")
(defconst systemd-unit-directives (defconst systemd-unit-directives
;; TODO: keep a script of sorts for generating this list. systemd (eval-when-compile
;; source has a python script in tools/ for parsing the (with-temp-buffer
;; documentation xml for the unit directives. (insert-file-contents "unit-directives.txt")
;; (split-string (buffer-string))))
;; forcer on freenode threw together a curl monstrosity for achieving "Configuration directives for systemd.")
;; the same:
;; curl -s http://www.freedesktop.org/software/systemd/man/systemd.directives.html | tr -d '\n' | sed 's/>/>\n/g' | sed -ne '/Unit directives/,/Options on the kernel/p' | sed -ne 's/.*<dt id="\([^-][^"]*\)=">.*/\1/p'
;; Quote, wrap with fill-column at 72, insert into list and indent
'("Accept" "AccuracySec" "After" "Alias" "AllowIsolate" "Also"
"AppArmorProfile" "AssertACPower" "AssertArchitecture"
"AssertCapability" "AssertDirectoryNotEmpty" "AssertFileIsExecutable"
"AssertFileNotEmpty" "AssertFirstBoot" "AssertHost"
"AssertKernelCommandLine" "AssertNeedsUpdate" "AssertPathExists"
"AssertPathExistsGlob" "AssertPathIsDirectory" "AssertPathIsMountPoint"
"AssertPathIsReadWrite" "AssertPathIsSymbolicLink" "AssertSecurity"
"AssertVirtualization" "Backlog" "Before" "BindIPv6Only" "BindToDevice"
"BindsTo" "BlockIOAccounting" "BlockIODeviceWeight"
"BlockIOReadBandwidth" "BlockIOWeight" "BlockIOWriteBandwidth"
"Broadcast" "BusName" "BusPolicy" "CPUAccounting" "CPUAffinity"
"CPUQuota" "CPUSchedulingPolicy" "CPUSchedulingPriority"
"CPUSchedulingResetOnFork" "CPUShares" "Capabilities"
"CapabilityBoundingSet" "ConditionACPower" "ConditionArchitecture"
"ConditionCapability" "ConditionDirectoryNotEmpty"
"ConditionFileIsExecutable" "ConditionFileNotEmpty" "ConditionFirstBoot"
"ConditionHost" "ConditionKernelCommandLine" "ConditionNeedsUpdate"
"ConditionPathExists" "ConditionPathExistsGlob"
"ConditionPathIsDirectory" "ConditionPathIsMountPoint"
"ConditionPathIsReadWrite" "ConditionPathIsSymbolicLink"
"ConditionSecurity" "ConditionVirtualization" "Conflicts"
"DefaultDependencies" "DefaultInstance" "DeferAcceptSec" "Delegate"
"Description" "DeviceAllow" "DevicePolicy" "DirectoryMode"
"DirectoryNotEmpty" "Documentation" "Environment" "EnvironmentFile"
"ExecReload" "ExecStart" "ExecStartPost" "ExecStartPre" "ExecStop"
"ExecStopPost" "ExecStopPre" "FailureAction" "FileDescriptorName"
"FileDescriptorStoreMax" "FreeBind" "Group" "GuessMainPID"
"IOSchedulingClass" "IOSchedulingPriority" "IPTOS" "IPTTL"
"IgnoreOnIsolate" "IgnoreSIGPIPE" "InaccessibleDirectories"
"JobTimeoutAction" "JobTimeoutRebootArgument" "JobTimeoutSec"
"JoinsNamespaceOf" "KeepAlive" "KeepAliveIntervalSec" "KeepAliveProbes"
"KeepAliveTimeSec" "KillMode" "KillSignal" "LimitAS" "LimitCORE"
"LimitCPU" "LimitDATA" "LimitFSIZE" "LimitLOCKS" "LimitMEMLOCK"
"LimitMSGQUEUE" "LimitNICE" "LimitNOFILE" "LimitNPROC" "LimitRSS"
"LimitRTPRIO" "LimitRTTIME" "LimitSIGPENDING" "LimitSTACK"
"ListenDatagram" "ListenFIFO" "ListenMessageQueue" "ListenNetlink"
"ListenSequentialPacket" "ListenSpecial" "ListenStream"
"ListenUSBFunction" "MakeDirectory" "Mark" "MaxConnections"
"MemoryAccounting" "MemoryLimit" "MessageQueueMaxMessages"
"MessageQueueMessageSize" "MountFlags" "NetClass" "Nice" "NoDelay"
"NoNewPrivileges" "NonBlocking" "NotifyAccess" "OOMScoreAdjust"
"OnActiveSec" "OnBootSec" "OnCalendar" "OnFailure" "OnFailureJobMode"
"OnStartupSec" "OnUnitActiveSec" "OnUnitInactiveSec" "Options" "PAMName"
"PIDFile" "PartOf" "PassCredentials" "PassEnvironment" "PassSecurity"
"PathChanged" "PathExists" "PathExistsGlob" "PathModified"
"PermissionsStartOnly" "Persistent" "Personality" "PipeSize" "Priority"
"PrivateDevices" "PrivateNetwork" "PrivateTmp" "PropagatesReloadTo"
"ProtectHome" "ProtectSystem" "RandomSec" "ReadOnlyDirectories"
"ReadWriteDirectories" "RebootArgument" "ReceiveBuffer"
"RefuseManualStart" "RefuseManualStop" "ReloadPropagatedFrom"
"RemainAfterElapse" "RemainAfterExit" "RemoveOnStop" "RequiredBy"
"Requires" "RequiresMountsFor" "Requisite" "Restart"
"RestartForceExitStatus" "RestartPreventExitStatus" "RestartSec"
"RestrictAddressFamilies" "ReusePort" "RootDirectory"
"RootDirectoryStartOnly" "RuntimeDirectory" "RuntimeDirectoryMode"
"SELinuxContext" "SELinuxContextFromNet" "SecureBits" "SendBuffer"
"SendSIGHUP" "SendSIGKILL" "Service" "Slice" "SloppyOptions"
"SmackLabel" "SmackLabelIPIn" "SmackLabelIPOut" "SmackProcessLabel"
"SocketGroup" "SocketMode" "SocketProtocol" "SocketUser" "Sockets"
"SourcePath" "StandardError" "StandardInput" "StandardOutput"
"StartLimitAction" "StartLimitBurst" "StartLimitInterval"
"StartupBlockIOWeight" "StartupCPUShares" "StopWhenUnneeded"
"SuccessExitStatus" "SupplementaryGroups" "Symlinks" "SyslogFacility"
"SyslogIdentifier" "SyslogLevel" "SyslogLevelPrefix"
"SystemCallArchitectures" "SystemCallErrorNumber" "SystemCallFilter"
"TCPCongestion" "TTYPath" "TTYReset" "TTYVHangup" "TTYVTDisallocate"
"TasksAccounting" "TasksMax" "TimeoutIdleSec" "TimeoutSec"
"TimeoutStartSec" "TimeoutStopSec" "TimerSlackNSec" "Transparent" "Type"
"UMask" "USBFunctionDescriptors" "USBFunctionStrings" "Unit" "User"
"UtmpIdentifier" "UtmpMode" "WakeSystem" "WantedBy" "Wants"
"WatchdogSec" "What" "Where" "WorkingDirectory" "Writable")
"Configuration directives for systemd 228.")
(defconst systemd-network-sections (defconst systemd-network-sections
'("Match" "Link" "NetDev" "VLAN" "MACVLAN" "MACVTAP" "IPVLAN" "VXLAN" '("Match" "Link" "NetDev" "VLAN" "MACVLAN" "MACVTAP" "IPVLAN" "VXLAN"
@ -169,34 +94,11 @@
"Network configuration sections for systemd 225.") "Network configuration sections for systemd 225.")
(defconst systemd-network-directives (defconst systemd-network-directives
;; /Network directives/,/Journal fields/p (eval-when-compile
'("ARPAllTargets" "ARPIPTargets" "ARPIntervalSec" "ARPProxy" "ARPValidate" (with-temp-buffer
"AdSelect" "Address" "AllSlavesActive" "AllowPortToBeRoot" (insert-file-contents "network-directives.txt")
"Architecture" "BindCarrier" "BitsPerSecond" "Bond" "Bridge" (split-string (buffer-string))))
"ClientIdentifier" "CopyDSCP" "Cost" "CriticalConnection" "DHCP" "Network configuration directives for systemd.")
"DHCPServer" "DNS" "DefaultLeaseTimeSec" "Description" "Destination" "DiscoverPathMTU"
"Domains" "DownDelaySec" "Driver" "Duplex" "EmitDNS" "EmitNTP"
"EmitTimezone" "EncapsulationLimit" "FDBAgeingSec" "FailOverMACPolicy"
"FallbackDNS" "FallbackNTP" "FastLeave" "ForwardDelaySec" "Gateway"
"GratuitousARP" "GroupPolicyExtension" "HairPin" "HelloTimeSec" "Host"
"Hostname" "IPForward" "IPMasquerade" "IPv4LLRoute"
"IPv6AcceptRouterAdvertisements" "IPv6DuplicateAddressDetection"
"IPv6FlowLabel" "IPv6HopLimit" "IPv6PrivacyExtensions" "IPv6Token" "Id"
"KernelCommandLine" "Kind" "L2MissNotification" "L3MissNotification"
"LACPTransmitRate" "LLDP" "LLMNR" "Label" "LearnPacketIntervalSec"
"LinkLocalAddressing" "Local" "MACAddress" "MACAddressPolicy" "MACVLAN"
"MIIMonitorSec" "MTUBytes" "MacLearning" "MaxAgeSec" "MaxLeaseTimeSec"
"MaximumFDBEntries" "Metric" "MinLinks" "Mode" "MultiQueue" "NTP" "Name"
"NamePolicy" "OneQueue" "OriginalName" "PacketInfo" "PacketsPerSlave"
"Path" "Peer" "PoolOffset" "PoolSize" "PreferredSource"
"PrimaryReselectPolicy" "Remote" "RequestBroadcast" "ResendIGMP"
"RouteMetric" "RouteShortCircuit" "Scope" "SendHostname" "Source" "TOS"
"TTL" "Timezone" "TransmitHashPolicy" "Tunnel" "UDP6ZeroCheckSumRx"
"UDP6ZeroChecksumTx" "UDPCheckSum" "UnicastFlood" "UpDelaySec" "UseBPDU"
"UseDNS" "UseDomains" "UseHostname" "UseMTU" "UseNTP" "UseRoutes"
"UseTimezone" "VLAN" "VLANId" "VNetHeader" "VXLAN"
"VendorClassIdentifier" "Virtualization" "WakeOnLan")
"Network configuration directives for systemd 228.")
;;;###autoload ;;;###autoload
(defconst systemd-autoload-regexp (defconst systemd-autoload-regexp