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?
- First line capitalized indicating briefly what you’ve changed
- A more detailed explanation of your changes
- A list containing all the changed, added, renamed, deleted files
TL;DR
Changed and added:
- Contribution guidelines changed
- The
Pluginpost-installation script type is now called aRemote - Added the possibility to create a file
- Added the possibility to append to a file
- Downloaded post-installation scripts can now contain multiple post-installation types
Greetings, JValck