<?php

require __DIR__ . '/../vendor/autoload.php';
$configFilename = file_exists(__DIR__ . '/../config.json') ? __DIR__ . '/../config.json' : __DIR__ . '/../config.json.dist';
$config = json_decode(file_get_contents($configFilename), true);
$start = time();
$redis = new Predis\Client(array('read_write_timeout' => 0));
while ($body = $redis->brpoplpush('dflydev-git-subsplit:incoming', 'dflydev-git-subsplit:processing', 0)) {
    $data = json_decode($body, true);
    $name = null;
    $project = null;
    $data['dflydev_git_subsplit'] = array('processed_at' => time());
    foreach ($config['projects'] as $testName => $testProject) {
        if ($testProject['url'] === $data['repository']['url']) {
            $name = $testName;
            $project = $testProject;
            break;
        }
    }
    if (null === $name) {
        print sprintf('Skipping request for URL %s (not configured)', $data['repository']['url']) . "\n";
        $redis->lrem('dflydev-git-subsplit:processing', 1, $body);
        $redis->lpush('dflydev-git-subspilt:failures', json_encode($data));
        continue;
    }
    $data['dflydev_git_subsplit']['name'] = $name;
    $data['dflydev_git_subsplit']['project'] = $project;
    $ref = $data['ref'];
    $publishCommand = array('git subsplit publish', escapeshellarg(implode(' ', $project['splits'])));
    if (preg_match('/refs\\/tags\\/(.+)$/', $ref, $matches)) {
        $publishCommand[] = escapeshellarg('--rebuild-tags');
<?php

require 'vendor/autoload.php';
Predis\Autoloader::register();
$client = new Predis\Client(array('host' => '127.0.0.1', 'port' => 6379), array('prefix' => 'php:'));
$client->lpush('blocking:queue', 'first');
$client->lpush('blocking:queue', 'second');
$client->blpop(['blocking:queue'], 0);
# array('php:blocking:queue', 'second')
$client->brpop(['blocking:queue'], 0);
# array('php:blocking:queue', 'first')
$client->rpush('blocking:source', 'message');
$client->brpoplpush('blocking:source', 'blocking:destination', 0);
# 'message'
<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
/**
 * Description of list_pop_movement
 *
 * @author changdi
 */
require "../shared.php";
$predis = new Predis\Client($single_server);
//var_dump($predis->rpush('list','item1'));
//var_dump($predis->rpush('list','item2'));
//var_dump($predis->rpush('list2','item3'));
//var_dump($predis->brpoplpush('list2','list',1));
//var_dump($predis->brpoplpush('list2','list',1));
var_dump($predis->brpoplpush('list', 'list2', 1));
var_dump($predis->blpop(['list', 'list2'], 1));
var_dump($predis->blpop(['list', 'list2'], 1));
var_dump($predis->blpop(['list', 'list2'], 1));
var_dump($predis->blpop(['list', 'list2'], 1));
var_dump($predis->lrange('list', 0, -1));
var_dump($predis->lrange('list2', 0, -1));