Skip to content
This repository has been archived by the owner on Apr 25, 2024. It is now read-only.

Commit

Permalink
1.1.1 archival
Browse files Browse the repository at this point in the history
  • Loading branch information
N6REJ committed Jul 11, 2022
1 parent 38ae889 commit fe532ed
Show file tree
Hide file tree
Showing 7 changed files with 283 additions and 2 deletions.
13 changes: 13 additions & 0 deletions bin/gitlist1.1.1/.htaccess
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<IfModule mod_rewrite.c>
Options -MultiViews +SymLinksIfOwnerMatch

RewriteEngine On
RewriteBase /gitlist/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [L,NC]
</IfModule>
<Files config.ini>
order allow,deny
deny from all
</Files>
2 changes: 2 additions & 0 deletions bin/gitlist1.1.1/cache/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*
!.gitignore
17 changes: 17 additions & 0 deletions bin/gitlist1.1.1/config.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[git]
client = '~NEARD_LIN_PATH~/tools/git/git2.8.0/bin/git.exe'
repositories[] = ''

[app]
debug = false
cache = false

[filetypes]
; extension = type
; dist = xml

[binary_filetypes]
; extension = true
; svh = false
; map = true

4 changes: 4 additions & 0 deletions bin/gitlist1.1.1/neard.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
gitlistVersion = "0.6.0"
gitlistConf = "config.ini"

bundleRelease = "@RELEASE_VERSION@"
245 changes: 245 additions & 0 deletions bin/gitlist1.1.1/src/Git/Client.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,245 @@
<?php

namespace GitList\Git;

use Gitter\Client as BaseClient;

class Client extends BaseClient
{
protected $defaultBranch;
protected $hidden;
protected $projects;

public function __construct($options = null)
{
parent::__construct($options['path']);
$this->setDefaultBranch($options['default_branch']);
$this->setHidden($options['hidden']);
$this->setProjects($options['projects']);
}

public function getRepositoryFromName($paths, $repo)
{
$repositories = $this->getRepositories($paths);
$path = $repositories[$repo]['path'];

return $this->getRepository($path);
}

/**
* Searches for valid repositories on the specified path.
*
* @param array $paths Array of paths where repositories will be searched
*
* @return array Found repositories, containing their name, path and description sorted
* by repository name
*/
public function getRepositories($paths)
{
$allRepositories = [];

foreach ($paths as $path) {
/*$repositories = $this->recurseDirectory($path);
if (empty($repositories)) {
throw new \RuntimeException('There are no GIT repositories in ' . $path);
}
// Use "+" to preserve keys, only a problem with numeric repos.
$allRepositories = $allRepositories + $repositories;*/

// START Neard edit
$name = str_replace(':', '', str_replace('/', '#', $path));
$repositories[$name] = array(
'name' => $name,
'path' => $path,
'description' => file_exists($path . '/.git/description') ? file_get_contents($path . '/.git/description') : ''
);

$allRepositories = array_merge($allRepositories, $repositories);
// END Neard edit
}

$allRepositories = array_unique($allRepositories, SORT_REGULAR);
uksort($allRepositories, function ($k1, $k2) {
return strtolower($k2) < strtolower($k1);
});

return $allRepositories;
}

/**
* Return name of default branch as a string.
*/
public function getDefaultBranch()
{
return $this->defaultBranch;
}

/**
* Overloads the parent::createRepository method for the correct Repository class instance.
*
* {@inheritdoc}
*/
public function createRepository($path, $bare = null)
{
if (file_exists($path . '/.git/HEAD') && !file_exists($path . '/HEAD')) {
throw new \RuntimeException('A GIT repository already exists at ' . $path);
}

$repository = new Repository($path, $this);

return $repository->create($bare);
}

/**
* Overloads the parent::getRepository method for the correct Repository class instance.
*
* {@inheritdoc}
*/
public function getRepository($path)
{
if (!file_exists($path) || !file_exists($path . '/.git/HEAD') && !file_exists($path . '/HEAD')) {
throw new \RuntimeException('There is no GIT repository at ' . $path);
}

return new Repository($path, $this);
}

/**
* Set default branch as a string.
*
* @param string $branch name of branch to use when repo's HEAD is detached
*
* @return object
*/
protected function setDefaultBranch($branch)
{
$this->defaultBranch = $branch;

return $this;
}

/**
* Get hidden repository list.
*
* @return array List of repositories to hide
*/
protected function getHidden()
{
return $this->hidden;
}

/**
* Set the hidden repository list.
*
* @param array $hidden List of repositories to hide
*
* @return object
*/
protected function setHidden($hidden)
{
$this->hidden = $hidden;

return $this;
}

/**
* Get project list.
*
* @return array List of repositories to show
*/
protected function getProjects()
{
return $this->projects;
}

/**
* Set the shown repository list.
*
* @param array $projects List of repositories to show
*/
protected function setProjects($projects)
{
$this->projects = $projects;

return $this;
}

private function recurseDirectory($path, $topLevel = true)
{
$dir = new \DirectoryIterator($path);

$repositories = [];

foreach ($dir as $file) {
if ($file->isDot()) {
continue;
}

if (strrpos($file->getFilename(), '.') === 0) {
continue;
}

if (!$file->isReadable()) {
continue;
}

if ($file->isDir()) {
$isBare = file_exists($file->getPathname() . '/HEAD');
$isRepository = file_exists($file->getPathname() . '/.git/HEAD');

if ($isRepository || $isBare) {
$hidden = function ($path, $hide) {
$return = false;

array_walk($hide, function ($value, $key) use ($path, &$return) {
if (($path === $value) || (1 === preg_match($value, $path))) {
$return = true;
}
});

return $return;
};

if ($hidden($file->getPathname(), $this->getHidden())) {
continue;
}

if ($isBare) {
$description = $file->getPathname() . '/description';
} else {
$description = $file->getPathname() . '/.git/description';
}

if (file_exists($description)) {
$description = file_get_contents($description);
} else {
$description = null;
}

if (!$topLevel) {
$repoName = $file->getPathInfo()->getFilename() . '/' . $file->getFilename();
} else {
$repoName = $file->getFilename();
}

if (is_array($this->getProjects()) && !in_array($repoName, $this->getProjects())) {
continue;
}

$repositories[$repoName] = [
'name' => $repoName,
'path' => $file->getPathname(),
'description' => $description,
];

continue;
}
$repositories = array_merge($repositories, $this->recurseDirectory($file->getPathname(), false));
}
}

return $repositories;
}
}
2 changes: 1 addition & 1 deletion bin/gitlist2.0.0/bearsampp.conf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
gitlistVersion = "2.0.0"
gitlistVersion = "1.1.1"
gitlistConf = "config.ini"

bundleRelease = "@RELEASE_VERSION@"
2 changes: 1 addition & 1 deletion build.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
bundle.name = gitlist
bundle.release = 2022.07.11
bundle.release = 1.1.1
bundle.type = apps
bundle.format = 7z

Expand Down

0 comments on commit fe532ed

Please sign in to comment.