Skip to content

Instantly share code, notes, and snippets.

@thomascube
thomascube / app.js
Created January 4, 2020 13:53
Automated Docker builds with Google cloud functions
const bent = require('bent');
const httpJSON = bent('json');
const admin = require('firebase-admin');
const DOCKER_BUILD_TRIGGER = 'https://hub.docker.com/api/build/v1/source/<this-is-secret>/trigger/<another-secret>/call/';
const BUILD_TAGS = {
'1.3.x-apache': '7.2-apache',
'1.3.x-fpm': '7.2-fpm',
'1.3.x-fpm-alpine': '7.2-fpm-alpine',
'1.4.x-apache': '7.3-apache',
'1.4.x-fpm': '7.3-fpm',
@thomascube
thomascube / image2grf.php
Created July 11, 2018 08:02
PHP function to convert a PNG image to a .GRF file for use with Zebra printers
<?php
/**
* Converts a PNG image to a .GRF file for use with Zebra printers
*
* The input is preferably a 1-bit black/white image but RGB images
* are accepted as well.
*
* This function uses PHP's GD library image functions.
*
@thomascube
thomascube / cve-2017-16651.md
Last active January 3, 2024 11:12
Roundcube Vulnerability CVE-2017-16651

Roundcube Webmail File Disclosure Vulnerability

  • Software: https://roundcube.net/
  • Versions: 1.1.0 - 1.1.9, 1.2.0 - 1.2.6, 1.3.0 - 1.3.2
  • CVE: CVE-2017-16651
  • Author: Thomas Bruederli
  • Release date: 2017-11-09

Summary

Roundcube Webmail allows unauthorized access to arbitrary files on the

@thomascube
thomascube / vtimezone.php
Last active February 15, 2023 21:15
VTIMEZONE component for a Olson timezone identifier with daylight transitions.Solution to this StackOverflow question: https://stackoverflow.com/questions/6682304/generating-an-icalender-vtimezone-component-from-phps-timezone-value/25971680
<?php
use \Sabre\VObject;
// use composer autoloader
require_once 'vendor/autoload.php';
/**
* Returns a VTIMEZONE component for a Olson timezone identifier
* with daylight transitions covering the given date range.
@thomascube
thomascube / 0_reuse_code.js
Created June 28, 2017 06:08
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
# replace the values for these placeholders to match your environment
variables = {
'skin': 'kolab',
}
# General information about the project.
project = u'Kolab Groupware Help'
copyright = u'2014, kolab.org'
version = '3.1'
@thomascube
thomascube / kolab_webhelp.diff
Last active August 29, 2015 14:03
Kolab web client user guide
diff --git a/_static/default.css b/_static/default.css
index b6f8f62..378107f 100755
--- a/_static/default.css
+++ b/_static/default.css
@@ -26,7 +26,7 @@ body {
div.banner {
margin: 0 0 3px 0;
padding: 10px 0;
- height: 40px;
+ height: 16px;
@thomascube
thomascube / RegisterCommand.php
Last active August 29, 2015 13:57
Patches and additions for creating a PHP Composer RPM module from source
<?php
/*
* This file is part of Composer.
*
* (c) Thomas Bruederli <bruederli@kolabsys.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
<?php
/**
* Distributed Composer package registration script
*
* This script registers the given composer module to the local installation registry
* in order to let composer.phar build autoloader files for installed modules.
*
* Usage: php add-package.php <PATH-TO-MODULE-COMPOSER.JSON> <VERSION>
*
@thomascube
thomascube / README.md
Last active December 17, 2015 23:59
dcomposer - Install Composer dependencies into a global location

dcomposer

This is simple approach to work-around the missing --global option in Composer. See composer/composer#55

It reads the dependencies from a local composer.json file and installs them into a global location (e.g. /usr/local/lib/composer) and creates a light-weight local Composer installation providing the necessary autoload magic.