class uwsgi::emperor ( String $path = '/etc/uwsgi/vassals', # TODO this should always be set, so other modules can use $uwsgi::emperor::address Optional[String] $listen = undef, ) { # TODO user, and group # arch package created group uwsgi (with hardcoded gid 53) # # TODO master? include ::uwsgi::package file { $path: ensure => directory, } file { '/etc/uwsgi/emperor.ini': content => epp("${module_name}/emperor.ini.epp"), } if $listen != undef { systemd::dropin_file { 'emperor.uwsgi.socket': content => @("EOF") ListenStream= ListenStream=${listen} | EOF } } service { 'emperor.uwsgi.socket': ensure => running, enable => true, } }