summaryrefslogtreecommitdiffstats
path: root/conf/unit/generate-unit-conf/service.inc
blob: 3efa97583706df2e0c81335ae76a60ddb3753a34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
dnl vim: set filetype=sysctl.conf.m4 syntax=sysctl.conf.m4:
;---------------------------------------------------------------------------------
;----         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

%systemd-unit system
%systemd-unit service UNIT_NAME_BASE

[Unit]
Description={{description}}
X-AFM-description={{description}}
X-AFM-name={{name.content}}
X-AFM-shortname={{name.short}}
X-AFM-id=TARGET
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=APP_DATA_DIR/{{:id}}
%nl

Requires=afm-user-session@%i.target
After=user@%i.service

# Adds check to smack
ConditionSecurity=smack
%nl

# Automatic bound to required api
{{#required-api}}
{{#value=auto|ws}}
BindsTo=UNIT_NAME_API_SERVICE({{name}},%i)
After=UNIT_NAME_API_SERVICE({{name}},%i)
{{/value=auto|ws}}
{{/required-api}}
{{#provided-api}}
{{#value=ws|auto}}
Requires=UNIT_NAME_API_SERVICE({{name}},%i)
After=UNIT_NAME_API_SERVICE({{name}},%i)
{{/value=ws|auto}}
{{/provided-api}}

%nl

[Service]
EnvironmentFile=-AFM_CONFIG_DIR/unit.env.d/*
SmackProcessLabel=User::App::{{:id}}
SuccessExitStatus=0 SIGKILL

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=-APP_DATA_DIR/{{:id}}
ExecStartPre=/bin/mkdir -p APP_DATA_DIR/{{:id}}
Environment=AFM_APP_INSTALL_DIR={{:#metadata.install-dir}}
Environment=PATH=/usr/sbin:/usr/bin:/sbin:/bin:{{:#metadata.install-dir}}/bin
Environment=LD_LIBRARY_PATH={{:#metadata.install-dir}}/lib
Environment=XDG_DATA_HOME=APP_DATA_DIR/{{:id}}
Environment=XDG_CONFIG_HOME=APP_DATA_DIR/{{:id}}
Environment=XDG_CACHE_HOME=APP_DATA_DIR/{{:id}}
Environment=XDG_RUNTIME_DIR=USER_RUN_DIR
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=USER_RUN_DIR/bus

IF_AGL_DEVEL
; Needed to enable debug
Environment=AFM_ID=TARGET
EnvironmentFile=-DEBUGGING_DIR/TARGET.env
ENDIF

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=afm-user-session@.target
%systemd-unit wanted-by afm-user-session@.target
ENDIF

%end systemd-unit