afm-unit.conf: Refactor its generation
[src/app-framework-main.git] / conf / unit / afm-unit-debug.conf.in
diff --git a/conf/unit/afm-unit-debug.conf.in b/conf/unit/afm-unit-debug.conf.in
deleted file mode 100644 (file)
index 15c794c..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-;-------------------------------------------------------------------------------
-; File:
-;
-;    afm-unit.conf
-;
-; Mode:
-;
-;    DEVEL
-;
-; Role:
-;
-;    Configure how installation of widget produces unit files for systemd
-;
-; Processing and format:
-;
-;    1. File load
-;
-;           Lines beginning with ; are firstly removed
-;
-;    2. File instantiation
-;
-;           Mustache (extended) substitutions are applied using JSON
-;           data deduced from config.xml file of the widget.
-;
-;    3. Extraction of units
-;
-;           Extract produced units, pack it (remove empty lines and directives)
-;
-; Directives:
-;
-;    Any directive occupy one whole line starting with %
-;
-;     - %nl
-;
-;             produce an empty line at the end
-;
-;     - %begin systemd-unit
-;     - %end systemd-unit
-;
-;             delimit the produced unit
-;
-;     - %systemd-unit user
-;     - %systemd-unit system
-;
-;             tells the kind of unit (user/system)
-;
-;     - %systemd-unit service NAME
-;     - %systemd-unit socket NAME
-;
-;             gives the name and type of the unit
-;
-;     - %systemd-unit wanted-by NAME
-;
-;             tells to install a link to unit in the wants of NAME
-;
-; Setting variables:
-;
-;    AFM uses the feature of systemd that completely ignores options prefixed
-;    with X-
-;
-;    Consequently, options starting with X-AFM- are recorded as public data
-;    about the application and options starting starting with X-AFM-- are
-;    recorded as private data.
-;
-;    Examples:
-;
-;        X-AFM-description={{description}}
-;
-;              Records the description of the unit in the field "description"
-;              of both the public and private object describing the unit.
-;
-;        X-AFM--wgtdir={{:#metadata.install-dir}}
-;
-;              Records the installation directory path in the field "wgtdir"
-;              of the private object only.
-;
-;-------------------------------------------------------------------------------
-;----        F O R E A C H   T A R G E T                                    ----
-;-------------------------------------------------------------------------------
-{{#targets}}
-;-------------------------------------------------------------------------------
-;-------------------------------------------------------------------------------
-;----         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 afm-{{#required-permission.@afm_prefix@permission::public:hidden}}service{{/required-permission.@afm_prefix@permission::public:hidden}}{{^required-permission.@afm_prefix@permission::public:hidden}}appli{{/required-permission.@afm_prefix@permission::public:hidden}}-{{:id}}--{{:ver}}--{{:#target}}@
-[Unit]
-Description={{description}}
-X-AFM-description={{description}}
-X-AFM-name={{name.content}}
-X-AFM-shortname={{name.short}}
-X-AFM-id={{idaver}}{{^#target=main}}@{{:#target}}{{/#target=main}}
-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=/home/%i/app-data/{{:id}}
-X-AFM--visibility={{#required-permission.@afm_prefix@permission::public:hidden}}hidden{{/required-permission.@afm_prefix@permission::public:hidden}}{{^required-permission.@afm_prefix@permission::public:hidden}}visible{{/required-permission.@afm_prefix@permission::public:hidden}}
-%nl
-Requires=afm-user-session@%i.target
-After=user@%i.service
-After=Network.target
-# Adds check to smack
-ConditionSecurity=smack
-%nl
-# Automatic bound to required api
-{{#required-binding}}
-{{#value=extern}}
-BindsTo=afm-link-{{name}}@%i.service
-After=afm-link-{{name}}@%i.service
-{{/value=extern}}
-{{/required-binding}}
-{{#required-api}}
-{{#value=auto|ws}}
-BindsTo=afm-api-{{name}}@%i.service
-After=afm-api-{{name}}@%i.service
-{{/value=auto|ws}}
-{{/required-api}}
-{{#provided-api}}
-{{#value=ws|auto}}
-Requires=afm-api-{{name}}@%i.socket
-After=afm-api-{{name}}@%i.socket
-{{/value=ws|auto}}
-{{/provided-api}}
-%nl
-[Service]
-EnvironmentFile=-@afm_confdir@/unit.env.d/*
-EnvironmentFile=-@afm_confdir@/widget.env.d/{{:id}}/*
-SmackProcessLabel=User::App::{{:id}}
-SuccessExitStatus=0 SIGKILL
-User=%i
-Slice=user-%i.slice
-CapabilityBoundingSet=
-#AmbientCapabilities=
-{{#required-permission.@afm_prefix@permission::platform:no-oom}}OOMScoreAdjust=-500{{/required-permission.@afm_prefix@permission::platform:no-oom}}
-{{#required-permission.@afm_prefix@permission::partner:real-time}}IOSchedulingClass=realtime{{/required-permission.@afm_prefix@permission::partner:real-time}}
-{{#required-permission.@afm_prefix@permission::public:display}}SupplementaryGroups=display{{/required-permission.@afm_prefix@permission::public:display}}
-{{^required-permission.@afm_prefix@permission::public:syscall:clock}}SystemCallFilter=~@clock{{/required-permission.@afm_prefix@permission::public:syscall:clock}}
-%nl
-WorkingDirectory=-/home/%i/app-data/{{:id}}
-ExecStartPre=/bin/mkdir -p /home/%i/app-data/{{:id}}
-Environment=AFM_ID={{idaver}}{{^#target=main}}@{{:#target}}{{/#target=main}}
-Environment=AFM_APP_INSTALL_DIR={{:#metadata.install-dir}}
-Environment=AFM_WORKDIR=/home/%i/app-data/{{:id}}
-Environment=AFM_WSAPI_DIR=@afm_users_rundir@/%i/apis/ws
-Environment=PATH=/usr/sbin:/usr/bin:/sbin:/bin:{{:#metadata.install-dir}}/bin
-Environment=LD_LIBRARY_PATH={{:#metadata.install-dir}}/lib
-Environment=XDG_DATA_HOME=/home/%i/app-data/{{:id}}
-Environment=XDG_CONFIG_HOME=/home/%i/app-data/{{:id}}
-Environment=XDG_CACHE_HOME=/home/%i/app-data/{{:id}}
-Environment=XDG_RUNTIME_DIR=@afm_users_rundir@/%i
-Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=@afm_users_rundir@/%i/bus
-; Needed to enable debug
-EnvironmentFile=-@afm_platform_rundir@/debug/{{idaver}}{{^#target=main}}@{{:#target}}{{/#target=main}}.env
-SyslogIdentifier=afbd-{{idaver}}{{^#target=main}}@{{:#target}}{{/#target=main}}
-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}}
-X-AFM-http-port={{:#metatarget.http-port}}
-Type=notify
-ExecStart=/usr/bin/afb-daemon \
-       --name afbd-{{idaver}}{{^#target=main}}@{{:#target}}{{/#target=main}} \
-       --rootdir={{:#metadata.install-dir}} \
-       --workdir=/home/%i/app-data/{{id}} \
-       --verbose \
-       --verbose \
-       --monitoring \
-       --port={{:#metatarget.http-port}} \
-       --token=HELLO \
-       --roothttp={{#content.type=application/vnd.agl.service}}.{{/content.type=application/vnd.agl.service}}{{^content.type=application/vnd.agl.service}}{{#required-permission.@afm_prefix@permission::public:no-htdocs}}.{{/required-permission.@afm_prefix@permission::public:no-htdocs}}{{^required-permission.@afm_prefix@permission::public:no-htdocs}}htdocs{{/required-permission.@afm_prefix@permission::public:no-htdocs}}{{/content.type=application/vnd.agl.service}} \
-       {{#required-permission.@afm_prefix@permission::public:applications:read}}--alias=/icons:{{:#metadata.icons-dir}}{{/required-permission.@afm_prefix@permission::public:applications:read}} \
-       {{#required-api}} \
-               {{#value=auto|ws}}--ws-client=unix:@afm_users_rundir@/%i/apis/ws/{{name}}{{/value=auto|ws}} \
-               {{#value=dbus}}--dbus-client={{name}}{{/value=dbus}} \
-               {{#value=cloud}}--cloud-client={{name}}{{/value=cloud}} \
-               {{#value=local}}--binding={{:#metadata.install-dir}}/{{name}}{{/value=local}} \
-               {{#value=tcp}}--ws-client=tcp:{{name}}{{/value=tcp}} \
-       {{/required-api}} \
-       {{#required-binding}} \
-               {{#value=local}}--binding={{:#metadata.install-dir}}/{{name}}{{/value=local}} \
-               {{#value=extern}}--binding=@afm_users_rundir@/%i/apis/link/{{name}}{{/value=extern}} \
-       {{/required-binding}} \
-       {{#provided-api}} \
-               {{#value=auto|ws}}--ws-server=sd:{{name}}{{/value=auto|ws}} \
-               {{#value=dbus}}--dbus-server={{name}}{{/value=dbus}} \
-               {{#value=tcp}}--ws-server=tcp:{{name}}{{/value=tcp}} \
-       {{/provided-api}} \
-       {{#content.type=text/html}}--exec /usr/bin/web-runtime http://localhost:@p/{{content.src}}?token=@t{{/content.type=text/html}} \
-       {{#content.type=application/vnd.agl.native}}--exec {{:#metadata.install-dir}}/{{content.src}} @p @t{{/content.type=application/vnd.agl.native}}
-{{/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}}
-{{#required-permission.@afm_prefix@permission::system:run-by-default}}
-;-------------------------------------------------------------------------------
-; auto start
-;-------------------------------------------------------------------------------
-[Install]
-WantedBy=afm-user-session@.target
-%systemd-unit wanted-by afm-user-session@.target
-{{/required-permission.@afm_prefix@permission::system:run-by-default}}
-%end systemd-unit
-;-------------------------------------------------------------------------------
-;----        F O R E A C H   P R O V I D E D   A P I S                      ----
-;-------------------------------------------------------------------------------
-{{#provided-api}}
-{{#value=ws|auto}}
-;-------------------------------------------------------------------------------
-;----        T H E   S E R V I C E   O F   T H E   A P I                    ----
-;-------------------------------------------------------------------------------
-%begin systemd-unit
-# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
-%systemd-unit system
-%systemd-unit service afm-api-{{name}}@
-[Unit]
-Description=Provides api {{name}} for user %i
-X-AFM-API-TYPE={{value}}
-Requires=afm-user-setup@%i.service
-After=afm-user-setup@%i.service
-Requires=afm-api-{{name}}@%i.socket
-After=afm-api-{{name}}@%i.socket
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/bin/true
-%end systemd-unit
-;-------------------------------------------------------------------------------
-;----        T H E   S O C K E T   O F   T H E   A P I                      ----
-;-------------------------------------------------------------------------------
-%begin systemd-unit
-# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
-%systemd-unit system
-%systemd-unit socket afm-api-{{name}}@
-[Unit]
-Description=Provides websocket api {{name}} for user %i
-Requires=afm-user-setup@%i.service
-After=afm-user-setup@%i.service
-DefaultDependencies=no
-[Socket]
-SmackLabel=*
-SmackLabelIPIn=System
-SmackLabelIPOut=System
-ListenStream=@afm_users_rundir@/%i/apis/ws/{{name}}
-FileDescriptorName={{name}}
-Service=afm-{{#required-permission.@afm_prefix@permission::public:hidden}}service{{/required-permission.@afm_prefix@permission::public:hidden}}{{^required-permission.@afm_prefix@permission::public:hidden}}appli{{/required-permission.@afm_prefix@permission::public:hidden}}-{{:id}}--{{:ver}}--{{:#target}}@%i.service
-%end systemd-unit
-{{/value=ws|auto}}
-{{/provided-api}}
-;-------------------------------------------------------------------------------
-;----        F O R E A C H   P R O V I D E D   B I N D I N G                ----
-;-------------------------------------------------------------------------------
-{{#provided-binding}}
-;-------------------------------------------------------------------------------
-;----        T H E   S E R V I C E   O F   T H E   B I N D I N G            ----
-;-------------------------------------------------------------------------------
-%begin systemd-unit
-# auto generated by wgtpkg-unit for {{:id}} version {{:version}} target {{:#target}} of {{:idaver}}
-%systemd-unit system
-%systemd-unit service afm-link-{{name}}@
-[Unit]
-Description=Provides binding {{name}} for user %i
-Requires=afm-user-setup@%i.service
-After=afm-user-setup@%i.service
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=/bin/ln -sf {{:#metadata.install-dir}}/{{value}} @afm_users_rundir@/%i/apis/link/{{name}}
-%end systemd-unit
-{{/provided-binding}}
-;-------------------------------------------------------------------------------
-{{/targets}}
-;-------------------------------------------------------------------------------
-; End of file afm-unit.conf mode DEVEL
-;-------------------------------------------------------------------------------