about summary refs log tree commit diff stats
path: root/scan-tree.c
Commit message (Collapse)AuthorAge
* scan-tree: Unify gitweb.* and cgit.* settings into one config option.Jason A. Donenfeld2012-10-17
| | | | | | | | | | | | | | | | | | | | | | | | | | After some back and forth with Jamie and René, it looks like the git config semantics are going to be like this: - gitweb.category maps to the cgit repo config key "section" - gitweb.description maps to the cgit repo config key "desc" - gitweb.owner maps to the cgit repo config key "owner" - cgit.* maps to all cgit repo config keys This option can be enabled with "enable-git-config=1", and replaces all previous "enable-gitweb-*" config keys. The order of operations is as follows: - git config settings are applied in the order that they exist in the git config file - if the owner is not set from git config, get the owner using the usual getpwuid call - if the description is not set from git config, look inside the static $path/description file - if section-from-path=1, override whatever previous settings were inside of git config using the section-from-path logic - parse $path/cgitrc for local repo.* settings, that override all previous settings
* Update copyright headers to have latest dates.Jason A. Donenfeld2012-07-12
|
* scan-tree: Support gitweb.category.Jason A. Donenfeld2012-07-12
| | | | | Use gitweb.category from git config to determine repo's section, if option is enabled.
* scan-tree: Support gitweb.description.Jason A. Donenfeld2012-07-12
| | | | | Use gitweb.description instead of description file to determine description, if option is enabled.
* scan-tree.c: avoid memory leakJamie Couture2011-06-06
| | | | | | | | No references are kept to the memory pointed to by the 'rel' variable, so it should be free()'d before returning from add_repo(). Signed-off-by: Jamie Couture <jamie.couture@gmail.com> Signed-off-by: Lars Hjemli <larsh@hjemli.net>
* Fix crash when projectsfile cannot be openedStefan Gehn2011-03-26
| | | | | | This patch makes cgit properly abort in case the projectsfile cannot be opened. Without the added return cgit continues using the projects pointer which is NULL and thus causes a segfault.
* scan_path(): Do not recurse into hidden directories by defaultJohan Herland2011-02-19
| | | | | | | | | | | Paths that start with a period ('.') are considered hidden in the Unix world. scan_path() should arguably not recurse into these directories by default. This patch makes it so, and introduces the "scan-hidden-path" config variable for overriding the new default and revert to the old behaviour (scanning _all_ directories, including hidden .directories). Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <larsh@prediktor.no>
* scan_path(): Improve handling of inaccessible directoriesJohan Herland2010-11-16
| | | | | | | | | | | | | | | | | | | | | | When scanning a tree containing inaccessible directories (e.g. '.ssh' directories in users' homedirs, or repos with explicitly restricted access), scan_path() currently causes three lines of "Permissions denied" errors to be printed to the CGI error log per inaccessible directory: Error checking path /home/foo/.ssh: Permission denied (13) Error checking path /home/foo/.ssh/.git: Permission denied (13) Error opening directory /home/foo/.ssh: Permission denied (13) This is a side-effect of calling is_git_dir(path) and is_git_dir(fmt("%s/.git", path) _before_ we try to opendir(path). By placing the opendir(path) before the two is_git_dir() calls, we reduce the noise to a single line per inaccessible directory: Error opening directory /home/foo/.ssh: Permission denied (13) Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Lars Hjemli <larsh@prediktor.no>
* Add `strict-export` optionFelix Hanley2010-11-08
| | | | | | | | | | This option is used to specify a filename which needs to be present in the repositories found during `scan-path` processing. By setting this option to 'git-daemon-export-ok', only repositories explicitly marked for git daemon export will be included in the cgit configuration. Signed-off-by: Felix Hanley <felix@seconddrawer.com.au> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Merge branch 'lh/section-from-path'Lars Hjemli2010-09-19
|\ | | | | | | | | Conflicts: scan-tree.c
| * Add support for 'section-from-path' optionLars Hjemli2010-08-22
| | | | | | | | | | | | | | This option can be used to autogenerate section names during scan-path processing. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* | Add support for "readme" optionLars Hjemli2010-08-22
|/ | | | | | The value of this option is used as the default value for repo.readme. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for 'enable-gitweb-owner' optionJason A. Donenfeld2010-08-04
| | | | | | | | | When this option is enabled (which it is by default), cgit will lookup the 'gitweb.owner' setting in each git config file found when processing the 'scan-path' option. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for 'remove-suffix' optionJason A. Donenfeld2010-08-04
| | | | | | | | When this option is enabled, the '.git' suffix of repository directories found while processing the 'scan-path' option will be removed. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for 'project-list' optionJason A. Donenfeld2010-08-04
| | | | | | | | | This option specifies the location of a projectlist file as used by gitweb - when 'scan-tree' is later specified, only the projects listed in the projectlist file will be added. Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* scan-tree: add test for noweb-file in repo dirLars Hjemli2010-02-28
| | | | | | If such a file exists, the repo is not added to the repolist. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for repo-local cgitrc fileLars Hjemli2009-08-24
| | | | | | | | | | | | | | | | | | | | | | | | | | When recursively scanning a directory tree looking for git repositories, cgit will now parse cgitrc files found within such repositories. The repo-specific config files can include any repo-specific options except 'repo.url' and 'repo.path'. Also, in such config files the 'repo.' prefix can not be used, i.e. the valid options then becomes: * name * clone-url * desc * ower * defbranch * snapshots * enable-log-filecount * enable-log-linecount * max-stats * module-link * section * about-filter * commit-filter * source-filter * readme Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* scan-tree: detect non-bare repository and stop scanning earlyLars Hjemli2009-08-24
| | | | | | | We don't want to descend into every subdirectory of a git repository with a workdir. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* scan-tree: split the pw_gecos field at the ',' to get the real nameStefan Naewe2009-08-20
| | | | | Signed-off-by: Stefan Naewe <stefan.naewe@atlas-elektronik.com> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add and use a common readfile() functionLars Hjemli2009-08-18
| | | | | | | | | | | | This function is used to read the full content of a textfile into a newly allocated buffer (with zerotermination). It replaces the earlier readfile() in scan-tree.c (which was rather error-prone[1]), and is reused by read_agefile() in ui-repolist.c. 1: No checks for EINTR and EAGAIN, fixed-size buffer Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* truncate buffer before reading empty filesSimon Arlott2009-08-18
| | | | | | | | | | If readfile() reads an empty file, fgets() won't truncate the buffer and it'll still contain the contents of the previously read file. [lh: fixed similar issue in ui-repolist.c] Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
* Add support for --scan-tree=<path> option to cgitLars Hjemli2008-09-15
This option makes cgit scan a directory tree looking for git repositories, generating suitable definitions for a cgitrc file on stdout. Signed-off-by: Lars Hjemli <hjemli@gmail.com>