Gitamin\Services\Git\Repository::getStatistics PHP Method

getStatistics() public method

public getStatistics ( $branch )
    public function getStatistics($branch)
    {
        // Calculate amount of files, extensions and file size
        $logs = $this->getClient()->run($this, 'ls-tree -r -l ' . $branch);
        $lines = explode("\n", $logs);
        $files = [];
        $data['extensions'] = [];
        $data['size'] = 0;
        $data['files'] = 0;
        foreach ($lines as $key => $line) {
            if (empty($line)) {
                unset($lines[$key]);
                continue;
            }
            $files[] = preg_split("/[\\s]+/", $line);
        }
        foreach ($files as $file) {
            if ($file[1] == 'blob') {
                $data['files']++;
            }
            if (is_numeric($file[3])) {
                $data['size'] += $file[3];
            }
        }
        $logs = $this->getClient()->run($this, 'ls-tree -l -r --name-only ' . $branch);
        $files = explode("\n", $logs);
        foreach ($files as $file) {
            if (($pos = strrpos($file, '.')) !== false) {
                $extension = substr($file, $pos);
                if (($pos = strrpos($extension, '/')) === false) {
                    $data['extensions'][] = $extension;
                }
            }
        }
        $data['extensions'] = array_count_values($data['extensions']);
        arsort($data['extensions']);
        return $data;
    }