New in version 2.5 19 Jun 2017

Version 2.5 adds a bunch of new functionality. This articles lists all of them.

Post-installation script

In this release, I focused mainly on the post-installation scripts, as the old features ran out of possibilities.

Shortcomings of the old post-installation scripts

In versions before 2.5, there were two types of post-installation scripts: Plugins and Shells. By design it was allowed that a Plugin could contain a Shell with its corresponding commands. Unfortunately, this made the difference between those two post-installation script types very little. When a Plugin had no Shell, it would download it from the repository. A logical step was removing the support to add a Shell to the Plugin and renaming Plugin to Remote. As you will notice, we now refer to a plugin as a post-installation script that can be downloaded by a Remote. I know, it’s a bit confusing.

New post-installation types

As of version 2.5 each script should contain a name and a type field. The name will be printed out to the user so that he knows what Parcks is doing.

Types

Remote

This is the old Plugin object. You can use it to download a post-installation script from another location.

{
"type":"remote",
"name":"Nextcloud",
"url":"https://raw.githubusercontent.com/Parcks/plugins/master/debian/NextcloudPlugin.ppl"
}

The above example is taken from the Nextcloud installer. It will download the post-installation script specified by the url field. Afterwards it will start executing the downloaded post-installation script (now called a plugin).

File creation

As the name suggests, this will create a file. Again, the script requires the name field to display what Parcks is doing.

{
    "root":true,
    "type":"file-create",
    "name":"Create server configuration file",
    "destination-path":"/etc/apache2/sites-available/nextcloud.conf",
    "contents":"Alias \/nextcloud \"\/var\/www\/nextcloud\/\"\r\n\r\n<Directory \/var\/www\/nextcloud\/>\r\n  Options +FollowSymlinks\r\n  AllowOverride All\r\n\r\n <IfModule mod_dav.c>\r\n  Dav off\r\n <\/IfModule>\r\n\r\n SetEnv HOME \/var\/www\/nextcloud\r\n SetEnv HTTP_HOME \/var\/www\/nextcloud\r\n\r\n<\/Directory>\r\n"
  }

In the above example you will notice that a File create script requires three fields: destination-path, contents and root. The last field is optional and will be false by default. Please notice that the contents value is escaped to allow good validation.

File append

The functionality and fields are like File create. The only difference is that it will append the contents to file specified by destination-path.

Remote post-installation script

A plugin (downloaded by a Remote script and ending on *.ppl), now supports multiple scripts. Before version 2.5 only one post-installation script type was allowed.

Contribution guidelines

As of version 2.5 only commits/PRs with the “old-fashion” message will be allowed. You can see an example here.

What should it look like?

TL;DR

Changed and added:

Greetings, JValck