1 ;---------------------------------------------------------------------------------
8 ; Configure how installation of widget produces unit files for systemd
10 ; Processing and format:
14 ; Lines beginning with ; are firstly removed
16 ; 2. File instanciation
18 ; Mustache (extended) substitutions are applied using JSON
19 ; data deduced from config.xml file of the widget.
21 ; 3. Extraction of units
23 ; Extract produced units, pack it (remove empty lines and directives)
27 ; All directive occopy one whole line starting with %
31 ; produce an empty line at the end
33 ; - %begin systemd-unit
36 ; delimit the produced unit
38 ; - %systemd-unit user
39 ; - %systemd-unit system
41 ; tells the kind of unit (user/system)
43 ; - %systemd-unit service NAME
44 ; - %systemd-unit socket NAME
46 ; gives the name and type of the unit
48 ;---------------------------------------------------------------------------------
52 # auto generated by wgtpkg-unit for {{id}} version {{version}} target {{:#target}}
56 Description={{description}}
57 X-AGL-Name={{name.content}}
58 X-AGL-Name-Short={{name.short}}
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}}
68 ConditionSecurity=smack
71 # Automatic bound to required bindings
73 BindsTo=afm-api-{{name}}
74 After=afm-api-{{name}}
79 SmackProcessLabel=User::App::{{id}}
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}}
91 WorkingDirectory={{&#metadata.app-data-dir}}
93 ;---------------------------------------------------------------------------------
94 {{#content.type=text/html}}
98 %systemd-unit service afm-appli-{{idaver}}{{^#target=main}}@{{:#target}}{{/#target=main}}
100 ExecStart=/usr/bin/afb-daemon --port={{:#metadata.http-port}} --random-token \
101 --rootdir={{:#metadata.install-dir}} \
102 --workdir={{&#metadata.app-data-dir}} \
104 {{#required-permission.urn:AGL:permission::public:applications:read}}\
105 --alias=/icons:{{:#metadata.icons-dir}} \
106 {{/required-permission.urn:AGL:permission::public:applications:read}}\
107 {{#required-binding}}\
109 --ws-client=unix:%t/apis/ws/{{name}} \
112 --ws-client=unix:%t/apis/ws/{{name}} \
115 --dbus-client={{name}} \
118 --binding=%t/apis/lib/{{name}} \
121 --cloud-client={{name}} \
123 {{/required-binding}}\
124 --exec /usr/bin/web-runtime http://localhost:@p/{{content.src}}?token=@t
126 {{/content.type=text/html}}
128 ;---------------------------------------------------------------------------------
129 {{#content.type=application/vnd.agl.service}}
132 %systemd-unit service afm-api-{{:#target}}
134 ExecStart=/usr/bin/afb-daemon \
135 --rootdir={{:#metadata.install-dir}} \
136 --workdir={{&#metadata.install-dir}} \
137 {{^required-permission.urn:AGL:permission::partner:service:no-ws}}\
138 --ws-server=unix:%t/bindings/{{:#target}} \
139 {{/required-permission.urn:AGL:permission::partner:service:no-ws}}\
140 {{^required-permission.urn:AGL:permission::partner:service:no-dbus}}\
141 --dbus-server={{:#target}} \
142 {{/required-permission.urn:AGL:permission::partner:service:no-dbus}}\
145 {{^required-permission.urn:AGL:permission::partner:service:no-ws}}
150 # auto generated by wgtpkg-unit for {{id}} version {{version}} target {{:#target}}
153 %systemd-unit socket afm-api-{{:#target}}
158 ListenStream=%t/bindings/{{:#target}}
160 {{/required-permission.urn:AGL:permission::partner:service:no-ws}}
162 {{/content.type=application/vnd.agl.service}}
164 ;---------------------------------------------------------------------------------