RSS Git Download  Clone
Raw Blame History
<?php

$app->get('{repo}/', function($repo) use($app) {
    $repository = $app['git']->getRepository($app['git.repos'] . $repo);
    $tree = $repository->getTree('master');
    $breadcrumbs = $app['utils']->getBreadcrumbs("$repo/");

    return $app['twig']->render('tree.twig', array(
        'baseurl'        => $app['baseurl'],
        'page'           => 'files',
        'files'          => $tree->output(),
        'repo'           => $repo,
        'branch'         => 'master',
        'path'           => '',
        'parent'         => '',
        'breadcrumbs'    => $breadcrumbs,
        'branches'       => $repository->getBranches(),
        'tags'           => $repository->getTags(),
    ));
})->assert('repo', '[\w-._]+');

$app->get('{repo}/tree/{branch}/', function($repo, $branch) use($app) {
    $repository = $app['git']->getRepository($app['git.repos'] . $repo);
    $tree = $repository->getTree($branch);
    $breadcrumbs = $app['utils']->getBreadcrumbs("$repo/");

    return $app['twig']->render('tree.twig', array(
        'baseurl'        => $app['baseurl'],
        'page'           => 'files',
        'files'          => $tree->output(),
        'repo'           => $repo,
        'branch'         => $branch,
        'path'           => '',
        'parent'         => '',
        'breadcrumbs'    => $breadcrumbs,
        'branches'       => $repository->getBranches(),
        'tags'           => $repository->getTags(),
    ));
})->assert('repo', '[\w-._]+')
  ->assert('branch', '[\w-._]+');

$app->get('{repo}/tree/{branch}/{tree}/', function($repo, $branch, $tree) use($app) {
    $repository = $app['git']->getRepository($app['git.repos'] . $repo);
    $files = $repository->getTree("$branch:$tree/");
    $breadcrumbs = $app['utils']->getBreadcrumbs("$repo/tree/$branch/$tree");

    if (($slash = strrpos($tree, '/')) !== false) {
        $parent = '/' . substr($tree, 0, $slash);
    } else {
        $parent = '/';
    }

    return $app['twig']->render('tree.twig', array(
        'baseurl'        => $app['baseurl'],
        'page'           => 'files',
        'files'          => $files->output(),
        'repo'           => $repo,
        'branch'         => $branch,
        'path'           => "$tree/",
        'parent'         => $parent,
        'breadcrumbs'    => $breadcrumbs,
        'branches'       => $repository->getBranches(),
        'tags'           => $repository->getTags(),
    ));
})->assert('tree', '.+')
  ->assert('repo', '[\w-._]+')
  ->assert('branch', '[\w-._]+');