<?php
namespace Tlf;
/**
* Used to view & route a single git project. Multiple viewers can be used in conjunction.
*/
class Provi {
/**
* The directory to show
*/
protected $srcDir;
/**
* @param $gitBare true to treat current dir as git --bare. `false` to treat current dir as a single git branch
*/
protected $gitBare = false;
public function __construct($dir, $gitBare=false){
$this->srcDir = $dir;
$this->gitBare = $gitBare;
}
/**
* @param $dir the dir of a project
*/
static public function deliver($dir){
// $dirToView = $_SERVER['DOCUMENT_ROOT'];
$dirToView = $dir;
$url = $_SERVER['REQUEST_URI'];
$lia = new \Liaison();
$lia->addResourceFile(\Tlf\Js\Autowire::filePath());
$dir = dirname(__DIR__.'/..',2);
$viewerApp = new \Lia\Package($lia,$dir,['baseUrl'=>'/','projects'=>[$dirToView]]);
$lia->set('lia:cache.dir', $viewerApp->dir('cache'));
if (true){
$lia->set('lia:cache.enable', false);
}
if (true){
$lia->set('lia:resource.recompileJsAfter', 0);
$lia->set('lia:resource.recompileCssAfter', 0);
$lia->set('lia:resource.useCache', true);
$lia->set('lia:resource.forceRecompile', true);
} else {
// $liaison->set('lia:resource.useCache', true);
}
$lia->deliver();
}
/**
* @param $file a file name or path
* @return a mimetype or false if none found
*/
static public function mime_type(string $file): string{
static $typeMap = NULL;
// $ext = substr($file,strrpos('.',$file)+1);
$typeMap = $typeMap ?? require(dirname(__DIR__,2).'/vendor/taeluf/liaison/code/file/mime_type_map.php');
$ext = pathinfo($file,PATHINFO_EXTENSION);
// if (!isset($typeMap['mimes'][$ext]))throw new \Exception("type not available for extension '{$ext}'");
return $typeMap['mimes'][$ext][0] ?? false;
}
}