Set the workdir in afm/afm-unit.conf
[src/app-framework-main.git] / conf / afm-unit.conf
1 ;---------------------------------------------------------------------------------
2 ; File:
3 ;
4 ;    afm-unit.conf
5 ;
6 ; Role:
7 ;
8 ;    Configure how installation of widget produces unit files for systemd
9 ;
10 ; Processing and format:
11 ;
12 ;    1. File load
13 ;
14 ;           Lines beginning with ; are firstly removed
15 ;
16 ;    2. File instanciation
17 ;
18 ;           Mustache (extended) substitutions are applied using JSON
19 ;           data deduced from config.xml file of the widget.
20 ;
21 ;    3. Extraction of units
22 ;
23 ;           Extract produced units, pack it (remove empty lines and directives)
24 ;
25 ; Directives:
26 ;
27 ;    All directive occopy one whole line starting with %
28 ;
29 ;     - %nl
30 ;
31 ;             produce an empty line at the end
32 ;
33 ;     - %begin systemd-unit
34 ;     - %end systemd-unit
35 ;
36 ;             delimit the produced unit
37 ;
38 ;     - %systemd-unit user
39 ;     - %systemd-unit system
40 ;
41 ;             tells the kind of unit (user/system)
42 ;
43 ;     - %systemd-unit service NAME
44 ;     - %systemd-unit socket NAME
45 ;
46 ;             gives the name and type of the unit
47 ;
48 ;---------------------------------------------------------------------------------
49 {{#targets}}
50 %begin systemd-unit
51
52 # auto generated by wgtpkg-unit for {{id}} version {{version}} target {{:#target}}
53 %nl
54
55 [unit]
56 Description={{description}}
57 X-AGL-Name={{name.content}}
58 X-AGL-Name-Short={{name.short}}
59 X-AGL-Id={{id}}
60 X-AGL-Idaver={{idaver}}
61 X-AGL-Target-Name={{:#target}}
62 X-AGL-Author={{author.content}}
63 X-AGL-Author-email={{author.email}}
64 X-AGL-HTTP-port={{:#metadata.http-port}}
65 %nl
66
67 # Adds check to smack
68 ConditionSecurity=smack
69 %nl
70
71 # Automatic bound to required api
72 {{#required-api}}
73 BindsTo=afm-api-{{name}}
74 After=afm-api-{{name}}
75 {{/required-api}}
76 %nl
77
78 [Service]
79 SmackProcessLabel=User::App::{{id}}
80
81 {{#required-permission}}
82   {{#urn:AGL:permission::platform:no-oom}}      OOMScoreAdjust=-500             {{/urn:AGL:permission::platform:no-oom}}
83   {{#urn:AGL:permission::partner:real-time}}    IOSchedulingClass=realtime      {{/urn:AGL:permission::partner:real-time}}
84   {{^urn:AGL:permission::partner:real-time}}    RestrictRealtime=on             {{/urn:AGL:permission::partner:real-time}}
85   {{#urn:AGL:permission::public:display}}       SupplementaryGroups=display     {{/urn:AGL:permission::public:display}}
86   {{^urn:AGL:permission::public:syscall:clock}} SystemCallFilter=~@clock        {{/urn:AGL:permission::public:syscall:clock}}
87   {{^urn:AGL:permission::public:internet}}      RestrictAddressFamilies=AF_UNIX {{/urn:AGL:permission::public:internet}}
88 {{/required-permission}}
89 %nl
90
91 WorkingDirectory={{&#metadata.app-data-dir}}
92 SuccessExitStatus=0 SIGKILL
93
94 ;---------------------------------------------------------------------------------
95 {{#content.type=text/html}}
96
97 %systemd-unit user
98
99 %systemd-unit service afm-appli-{{idaver}}{{^#target=main}}@{{:#target}}{{/#target=main}}
100
101 ExecStart=/usr/bin/afb-daemon --port={{:#metadata.http-port}} --random-token \
102         --rootdir={{:#metadata.install-dir}} \
103         --workdir={{&#metadata.app-data-dir}}/{{id}} \
104         --roothttp=htdocs \
105         {{#required-permission.urn:AGL:permission::public:applications:read}}\
106                 --alias=/icons:{{:#metadata.icons-dir}} \
107         {{/required-permission.urn:AGL:permission::public:applications:read}}\
108         {{#required-api}}\
109                 {{#value=auto}}\
110                         --ws-client=unix:%t/apis/ws/{{name}} \
111                 {{/value=auto}}\
112                 {{#value=ws}}\
113                         --ws-client=unix:%t/apis/ws/{{name}} \
114                 {{/value=ws}}\
115                 {{#value=dbus}}\
116                         --dbus-client={{name}} \
117                 {{/value=dbus}}\
118                 {{#value=link}}\
119                         --binding=%t/apis/lib/{{name}} \
120                 {{/value=link}}\
121                 {{#value=cloud}}\
122                         --cloud-client={{name}} \
123                 {{/value=cloud}}\
124         {{/required-api}}\
125         --exec /usr/bin/web-runtime http://localhost:@p/{{content.src}}?token=@t
126
127 {{/content.type=text/html}}
128
129 ;---------------------------------------------------------------------------------
130 {{#content.type=application/vnd.agl.service}}
131
132 %systemd-unit user
133 %systemd-unit service afm-api-{{:#target}}
134
135 ExecStart=/usr/bin/afb-daemon \
136         --rootdir={{:#metadata.install-dir}} \
137         --workdir={{&#metadata.install-dir}}/{{id}} \
138         {{^required-permission.urn:AGL:permission::partner:service:no-ws}}\
139                 --ws-server=unix:%t/bindings/{{:#target}} \
140         {{/required-permission.urn:AGL:permission::partner:service:no-ws}}\
141         {{^required-permission.urn:AGL:permission::partner:service:no-dbus}}\
142                 --dbus-server={{:#target}} \
143         {{/required-permission.urn:AGL:permission::partner:service:no-dbus}}\
144         --no-httpd 
145
146 {{^required-permission.urn:AGL:permission::partner:service:no-ws}}
147
148 %end systemd-unit
149 %begin systemd-unit
150
151 # auto generated by wgtpkg-unit for {{id}} version {{version}} target {{:#target}}
152 #
153 %systemd-unit user
154 %systemd-unit socket afm-api-{{:#target}}
155
156
157 [socket]
158 SmackLabel=*
159 ListenStream=%t/bindings/{{:#target}}
160
161 {{/required-permission.urn:AGL:permission::partner:service:no-ws}}
162
163 {{/content.type=application/vnd.agl.service}}
164
165 ;---------------------------------------------------------------------------------
166 {{#required-permission.urn:AGL:permission::system:run-by-default}}
167 [install]
168 WantedBy=default.target
169 {{/required-permission.urn:AGL:permission::system:run-by-default}}
170 ;---------------------------------------------------------------------------------
171 %end systemd-unit
172 {{/targets}}
173
174