diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-11-15 16:20:28 +0100 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2017-11-24 17:44:57 +0100 |
commit | 88531199d2f46f8758dd1ef3262e567cc849c0b8 (patch) | |
tree | 610ecc205121ddd7421755e07be878901830ed73 /conf/generate-unit-conf/service.inc | |
parent | 597a0e00c4fcb1af745804be6249f08203084f62 (diff) |
Generate afm-unit.conf using m4
The use of m4 to generate the afm-unit.conf and
afm-unit-debug.conf files has benefits:
- the sync between debug versus not debug is mechanical
- it allows easier maintainance by improving readability
and writability (ex: macros TARGET or UNIT_NAME_BASE)
Change-Id: Ic0427bedf4f8a5b174318562336603077f174fa5
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
Diffstat (limited to 'conf/generate-unit-conf/service.inc')
-rw-r--r-- | conf/generate-unit-conf/service.inc | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/conf/generate-unit-conf/service.inc b/conf/generate-unit-conf/service.inc new file mode 100644 index 0000000..040eb16 --- /dev/null +++ b/conf/generate-unit-conf/service.inc @@ -0,0 +1,119 @@ +;--------------------------------------------------------------------------------- +;---- M A I N P A R T O F T H E S E R V I C E ---- +;--------------------------------------------------------------------------------- +%begin systemd-unit + +# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}} +%nl + +[Unit] +Description={{description}} +X-AFM-description={{description}} +X-AFM-name={{name.content}} +X-AFM-shortname={{name.short}} +#*************** +# use X-AFM-id={{:id}}--{{:ver}}--{{:#target}} +# instead of: +X-AFM-id=TARGET +# when home screen will use real ids +#************** +X-AFM-version={{:version}} +X-AFM-author={{author.content}} +X-AFM-author-email={{author.email}} +X-AFM-width={{width}} +X-AFM-height={{height}} +{{#icon}} +X-AFM-icon={{:#metadata.install-dir}}/{{:src}} +{{/icon}} +X-AFM--ID={{:id}} +X-AFM--target-name={{:#target}} +X-AFM--content={{content.src}} +X-AFM--type={{content.type}} +X-AFM--wgtdir={{:#metadata.install-dir}} +X-AFM--workdir={{&#metadata.app-data-dir}}/{{:id}} +%nl + +Wants=sockets.target + +# Adds check to smack +ConditionSecurity=smack +%nl + +# Automatic bound to required api +{{#required-api}} +{{#value=auto|ws}} +BindsTo=UNIT_NAME_SOCKET_FOR({{name}}) +After=UNIT_NAME_SOCKET_FOR({{name}}) +{{/value=auto|ws}} +{{/required-api}} +%nl + +[Service] +EnvironmentFile=-AFM_CONFIG_DIR/unit.env.d/* +SmackProcessLabel=User::App::{{:id}} +SuccessExitStatus=0 SIGKILL + +#PAMName=su +User=%i +Slice=user-%i.slice + +CapabilityBoundingSet= +AmbientCapabilities= + +ON_PERM(:platform:no-oom, OOMScoreAdjust=-500) +ON_PERM(:partner:real-time, IOSchedulingClass=realtime) +ON_PERM(:public:display, SupplementaryGroups=display) +ON_PERM(:public:syscall:clock, , SystemCallFilter=~@clock) +%nl + +WorkingDirectory=-{{&#metadata.app-data-dir}}/{{:id}} +ExecStartPre=/bin/mkdir -p {{&#metadata.app-data-dir}}/{{:id}} +Environment=AFM_APP_INSTALL_DIR={{:#metadata.install-dir}} +Environment=PATH=/usr/sbin:/usr/bin:/sbin:/bin:{{:#metadata.install-dir}} +Environment=XDG_DATA_HOME={{&#metadata.app-data-dir}}/{{:id}} +Environment=XDG_CONFIG_HOME={{&#metadata.app-data-dir}}/{{:id}} +Environment=XDG_CACHE_HOME={{&#metadata.app-data-dir}}/{{:id}} +Environment=XDG_RUNTIME_DIR=/run/user/%i +Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%i/bus +Environment=LD_LIBRARY_PATH=$ORIGIN/lib + +IF_AGL_DEVEL +; Needed to enable debug +Environment=AFM_ID=TARGET +EnvironmentFile=-/var/run/afm-debug/TARGET.env +ENDIF + +%systemd-unit system +%systemd-unit service UNIT_NAME_BASE + +SyslogIdentifier=afbd-TARGET +StandardInput=null +StandardOutput=journal +StandardError=journal + +;--------------------------------------------------------------------------------- +;---- text/html application/vnd.agl.native application/vnd.agl.service ---- +;--------------------------------------------------------------------------------- +{{#content.type=text/html|application/vnd.agl.native|application/vnd.agl.service}} +include(binder.inc) +{{/content.type=text/html|application/vnd.agl.native|application/vnd.agl.service}} + +;--------------------------------------------------------------------------------- +;---- application/x-executable ---- +;--------------------------------------------------------------------------------- +{{#content.type=application/x-executable}} +ExecStart={{:#metadata.install-dir}}/{{content.src}} +{{/content.type=application/x-executable}} + +IF_PERM(:system:run-by-default) +;--------------------------------------------------------------------------------- +; auto start +;--------------------------------------------------------------------------------- +[Install] +WantedBy=default.target +%systemd-unit wanted-by default.target +ENDIF + +%end systemd-unit + + |