Generate afm-unit.conf using m4
[src/app-framework-main.git] / conf / generate-unit-conf / service.inc
1 ;---------------------------------------------------------------------------------
2 ;----         M A I N    P A R T    O F   T H E   S E R V I C E               ----
3 ;---------------------------------------------------------------------------------
4 %begin systemd-unit
5
6 # auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
7 %nl
8
9 [Unit]
10 Description={{description}}
11 X-AFM-description={{description}}
12 X-AFM-name={{name.content}}
13 X-AFM-shortname={{name.short}}
14 #***************
15 # use X-AFM-id={{:id}}--{{:ver}}--{{:#target}}
16 # instead of:
17 X-AFM-id=TARGET
18 # when home screen will use real ids
19 #**************
20 X-AFM-version={{:version}}
21 X-AFM-author={{author.content}}
22 X-AFM-author-email={{author.email}}
23 X-AFM-width={{width}}
24 X-AFM-height={{height}}
25 {{#icon}}
26 X-AFM-icon={{:#metadata.install-dir}}/{{:src}}
27 {{/icon}}
28 X-AFM--ID={{:id}}
29 X-AFM--target-name={{:#target}}
30 X-AFM--content={{content.src}}
31 X-AFM--type={{content.type}}
32 X-AFM--wgtdir={{:#metadata.install-dir}}
33 X-AFM--workdir={{&#metadata.app-data-dir}}/{{:id}}
34 %nl
35
36 Wants=sockets.target
37
38 # Adds check to smack
39 ConditionSecurity=smack
40 %nl
41
42 # Automatic bound to required api
43 {{#required-api}}
44 {{#value=auto|ws}}
45 BindsTo=UNIT_NAME_SOCKET_FOR({{name}})
46 After=UNIT_NAME_SOCKET_FOR({{name}})
47 {{/value=auto|ws}}
48 {{/required-api}}
49 %nl
50
51 [Service]
52 EnvironmentFile=-AFM_CONFIG_DIR/unit.env.d/*
53 SmackProcessLabel=User::App::{{:id}}
54 SuccessExitStatus=0 SIGKILL
55
56 #PAMName=su
57 User=%i
58 Slice=user-%i.slice
59
60 CapabilityBoundingSet=
61 AmbientCapabilities=
62
63 ON_PERM(:platform:no-oom,   OOMScoreAdjust=-500)
64 ON_PERM(:partner:real-time, IOSchedulingClass=realtime)
65 ON_PERM(:public:display,    SupplementaryGroups=display)
66 ON_PERM(:public:syscall:clock, , SystemCallFilter=~@clock)
67 %nl
68
69 WorkingDirectory=-{{&#metadata.app-data-dir}}/{{:id}}
70 ExecStartPre=/bin/mkdir -p {{&#metadata.app-data-dir}}/{{:id}}
71 Environment=AFM_APP_INSTALL_DIR={{:#metadata.install-dir}}
72 Environment=PATH=/usr/sbin:/usr/bin:/sbin:/bin:{{:#metadata.install-dir}}
73 Environment=XDG_DATA_HOME={{&#metadata.app-data-dir}}/{{:id}}
74 Environment=XDG_CONFIG_HOME={{&#metadata.app-data-dir}}/{{:id}}
75 Environment=XDG_CACHE_HOME={{&#metadata.app-data-dir}}/{{:id}}
76 Environment=XDG_RUNTIME_DIR=/run/user/%i
77 Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/%i/bus
78 Environment=LD_LIBRARY_PATH=$ORIGIN/lib
79
80 IF_AGL_DEVEL
81 ; Needed to enable debug
82 Environment=AFM_ID=TARGET
83 EnvironmentFile=-/var/run/afm-debug/TARGET.env
84 ENDIF
85
86 %systemd-unit system
87 %systemd-unit service UNIT_NAME_BASE
88
89 SyslogIdentifier=afbd-TARGET
90 StandardInput=null
91 StandardOutput=journal
92 StandardError=journal
93
94 ;---------------------------------------------------------------------------------
95 ;----   text/html  application/vnd.agl.native  application/vnd.agl.service    ----
96 ;---------------------------------------------------------------------------------
97 {{#content.type=text/html|application/vnd.agl.native|application/vnd.agl.service}}
98 include(binder.inc)
99 {{/content.type=text/html|application/vnd.agl.native|application/vnd.agl.service}}
100
101 ;---------------------------------------------------------------------------------
102 ;----                 application/x-executable                                ----
103 ;---------------------------------------------------------------------------------
104 {{#content.type=application/x-executable}}
105 ExecStart={{:#metadata.install-dir}}/{{content.src}}
106 {{/content.type=application/x-executable}}
107
108 IF_PERM(:system:run-by-default)
109 ;---------------------------------------------------------------------------------
110 ; auto start
111 ;---------------------------------------------------------------------------------
112 [Install]
113 WantedBy=default.target
114 %systemd-unit wanted-by default.target
115 ENDIF
116
117 %end systemd-unit
118
119