Initial commit

This commit is contained in:
Jake Bauer 2020-07-05 00:37:10 -04:00
commit f991d8728b
7 changed files with 990 additions and 0 deletions

892
cgit.css Normal file
View File

@ -0,0 +1,892 @@
:root {
/* General */
--logo-width: 64px;
--font-size: 100%;
/* Colours */
--bg: #ffffff;
--fg: #333333;
--black: #000000;
--dark-grey: #666666;
--grey: #aaaaaa;
--light-grey: #cccccc;
--very-light-grey: #eeeeee;
--table-rows-alternating: #f7f7f7;
--red: #e00000;
--dark-red: #990000;
--green: #007700;
--light-green: #55cc55;
--dark-green: #004400;
--blue: #0000ff;
--dark-blue: #000099;
--olive: #777700;
--turquoise: #00aaaa;
--dark-magenta: #aa00aa;
--yellow: #ffff88;
--light-yellow: #ffffdd;
--dark-yellow: #ffcc88;
--remote-deco: #ccccff;
--deco: #ff8888;
--ssdiff-add-bg: #cfc;
--ssdiff-add-dark-bg: #aca;
--ssdiff-del-bg: #fcc;
--ssdiff-del-dark-bg: #caa;
--ssdiff-cha-dark-bg: #cca;
--ssdiff-hunk-bg: #ccf;
}
div#cgit {
padding: 0em;
margin: 0em;
font-family: sans-serif;
font-size: var(--font-size);
color: var(--fg);
background: var(--bg);
padding: 4px;
}
div#cgit a {
color: var(--blue);
text-decoration: none;
}
div#cgit a:hover {
text-decoration: underline;
}
div#cgit table {
border-collapse: collapse;
}
div#cgit table#header {
width: 100%;
margin-bottom: 1em;
}
div#cgit table#header td.logo {
width: var(--logo-width);
vertical-align: top;
}
div#cgit table#header td.main {
font-size: 250%;
padding-left: 10px;
white-space: nowrap;
}
div#cgit table#header td.main a {
color: var(--black);
}
div#cgit table#header td.form {
text-align: right;
vertical-align: bottom;
padding-right: 1em;
padding-bottom: 2px;
white-space: nowrap;
}
div#cgit table#header td.form form,
div#cgit table#header td.form input,
div#cgit table#header td.form select {
font-size: 90%;
}
div#cgit table#header td.sub {
color: var(--dark-grey);
border-top: solid 1px var(--dark-grey);
padding-left: 10px;
}
div#cgit table.tabs {
border-bottom: solid 3px var(--very-light-grey);
border-collapse: collapse;
margin-top: 2em;
margin-bottom: 0px;
width: 100%;
}
div#cgit table.tabs td {
padding: 0px 1em;
vertical-align: bottom;
}
div#cgit table.tabs td a {
padding: 2px 0.75em;
color: var(--dark-grey);
font-size: 110%;
}
div#cgit table.tabs td a.active {
color: var(--black);
background-color: var(--very-light-grey);
}
div#cgit table.tabs a[href^="http://"]:after, div#cgit table.tabs a[href^="https://"]:after {
content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAQAAAAnOwc2AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfgAhcJDQY+gm2TAAAAHWlUWHRDb21tZW50AAAAAABDcmVhdGVkIHdpdGggR0lNUGQuZQcAAABbSURBVAhbY2BABs4MU4CwhYHBh2Erww4wrGFQZHjI8B8IgUIscJWyDHcggltQhI4zGDCcRwhChPggHIggP1QoAVmQkSETrGoHsiAEsACtBYN0oDAMbgU6EBcAAL2eHUt4XUU4AAAAAElFTkSuQmCC);
opacity: 0.5;
margin: 0 0 0 5px;
}
div#cgit table.tabs td.form {
text-align: right;
}
div#cgit table.tabs td.form form {
padding-bottom: 2px;
font-size: 90%;
white-space: nowrap;
}
div#cgit table.tabs td.form input,
div#cgit table.tabs td.form select {
font-size: 90%;
}
div#cgit div.path {
margin: 0px;
padding: 2px 2em;
color: var(--black);
background-color: var(--very-light-grey);
}
div#cgit div.content {
margin: 0px;
padding: 2em;
border-bottom: solid 3px var(--grey);
}
div#cgit table.list {
width: 100%;
border: none;
border-collapse: collapse;
}
div#cgit table.list tr.logheader,
div#cgit table.list tr:hover {
background: var(--very-light-grey);
}
div#cgit table.list tr.nohover-highlight:hover:nth-child(even),
div#cgit table.list tr:nth-child(even) {
background: var(--table-rows-alternating);
}
div#cgit table.list tr ,
div#cgit table.list tr.nohover,
div#cgit table.list tr.nohover:hover,
div#cgit table.list tr.nohover-highlight:hover:nth-child(odd),
div#cgit table.list tr:nth-child(odd) {
background: var(--bg-l);
}
div#cgit table.list th {
font-weight: bold;
padding: 0.1em 0.5em 0.05em 0.5em;
vertical-align: baseline;
}
div#cgit table.list td {
border: none;
padding: 0.1em 0.5em 0.1em 0.5em;
}
div#cgit table.list td.commitgraph {
font-family: monospace;
white-space: pre;
}
div#cgit table.list td.commitgraph .column1 {
color: var(--dark-red);
}
div#cgit table.list td.commitgraph .column2 {
color: var(--green);
}
div#cgit table.list td.commitgraph .column3 {
color: var(--olive);
}
div#cgit table.list td.commitgraph .column4 {
color: var(--dark-blue);
}
div#cgit table.list td.commitgraph .column5 {
color: var(--dark-magenta);
}
div#cgit table.list td.commitgraph .column6 {
color: var(--turquoise);
}
div#cgit table.list td.logsubject {
font-family: monospace;
font-weight: bold;
}
div#cgit table.list td.logmsg {
font-family: monospace;
white-space: pre;
padding: 0 0.5em;
}
div#cgit table.list td a {
color: var(--black);
text-decoration: underline;
}
div#cgit table.list td a.ls-dir {
font-weight: bold;
color: var(--blue);
}
div#cgit table.list td a:hover {
color: var(--blue);
text-decoration: none;
}
div#cgit img {
border: none;
}
div#cgit input#switch-btn {
margin: 2px 0px 0px 0px;
}
div#cgit td#sidebar input.txt {
width: 100%;
margin: 2px 0px 0px 0px;
}
div#cgit table#grid {
margin: 0px;
}
div#cgit td#content {
vertical-align: top;
padding: 1em 2em 1em 1em;
border: none;
}
div#cgit div#summary {
vertical-align: top;
margin-bottom: 1em;
}
div#cgit table#downloads {
float: right;
border-collapse: collapse;
border: solid 1px var(--dark-grey);
margin-left: 0.5em;
margin-bottom: 0.5em;
}
div#cgit table#downloads th {
background-color: var(--grey);
}
div#cgit div#blob {
border: solid 1px var(--black);
}
div#cgit div.error {
color: var(--red);
font-weight: bold;
margin: 1em 2em;
}
div#cgit a.ls-blob, div#cgit a.ls-dir, div#cgit .ls-mod {
font-family: monospace;
}
div#cgit td.ls-size {
text-align: right;
font-family: monospace;
width: 10em;
}
div#cgit td.ls-mode {
font-family: monospace;
width: 10em;
}
div#cgit table.blob {
margin-top: 0.5em;
border-top: solid 1px var(--black);
}
div#cgit table.blob td.hashes,
div#cgit table.blob td.lines {
margin: 0; padding: 0 0 0 0.5em;
vertical-align: top;
color: var(--black);
}
div#cgit table.blob td.linenumbers {
margin: 0; padding: 0 0.5em 0 0.5em;
vertical-align: top;
text-align: right;
border-right: 1px solid var(--dark-grey);
background-color: var(--very-light-grey);
}
div#cgit table.blob pre {
padding: 0; margin: 0;
}
div#cgit table.blob td.linenumbers a,
div#cgit table.ssdiff td.lineno a {
color: var(--dark-grey);
text-align: right;
text-decoration: underline;
}
div#cgit table.blob td.linenumbers a:hover,
div#cgit table.ssdiff td.lineno a:hover {
color: var(--black);
text-decoration: none;
}
div#cgit table.blame td.hashes,
div#cgit table.blame td.lines,
div#cgit table.blame td.linenumbers {
padding: 0;
}
div#cgit table.blame td.hashes div.alt,
div#cgit table.blame td.lines div.alt {
padding: 0 0.5em 0 0.5em;
}
div#cgit table.blame td.linenumbers div.alt {
padding: 0 0.5em 0 0;
}
div#cgit table.blame div.alt:nth-child(even) {
background: var(--very-light-grey);
}
div#cgit table.blame div.alt:nth-child(odd) {
background: var(--bg-l);
}
div#cgit table.blame td.lines > div {
position: relative;
}
div#cgit table.blame td.lines > div > pre {
padding: 0 0 0 0.5em;
position: absolute;
top: 0;
}
div#cgit table.bin-blob {
margin-top: 0.5em;
border: solid 1px var(--black);
}
div#cgit table.bin-blob th {
font-family: monospace;
white-space: pre;
border: solid 1px var(--dark-grey);
padding: 0.5em 1em;
}
div#cgit table.bin-blob td {
font-family: monospace;
white-space: pre;
border-left: solid 1px var(--dark-grey);
padding: 0em 1em;
}
div#cgit table.nowrap td {
white-space: nowrap;
}
div#cgit table.commit-info {
border-collapse: collapse;
margin-top: 1.5em;
}
div#cgit div.cgit-panel {
float: right;
margin-top: 1.5em;
}
div#cgit div.cgit-panel table {
border-collapse: collapse;
border: solid 1px var(--grey);
background-color: var(--very-light-grey);
}
div#cgit div.cgit-panel th {
text-align: center;
}
div#cgit div.cgit-panel td {
padding: 0.25em 0.5em;
}
div#cgit div.cgit-panel td.label {
padding-right: 0.5em;
}
div#cgit div.cgit-panel td.ctrl {
padding-left: 0.5em;
}
div#cgit table.commit-info th {
text-align: left;
font-weight: normal;
padding: 0.1em 1em 0.1em 0.1em;
vertical-align: top;
}
div#cgit table.commit-info td {
font-weight: normal;
padding: 0.1em 1em 0.1em 0.1em;
}
div#cgit div.commit-subject {
font-weight: bold;
font-size: 125%;
margin: 1.5em 0em 0.5em 0em;
padding: 0em;
}
div#cgit div.commit-msg {
white-space: pre;
font-family: monospace;
}
div#cgit div.notes-header {
font-weight: bold;
padding-top: 1.5em;
}
div#cgit div.notes {
white-space: pre;
font-family: monospace;
border: solid 1px var(--yellow);
background-color: var(--light-yellow);
padding: 0.3em 2em 0.3em 1em;
float: left;
}
div#cgit div.notes-footer {
clear: left;
}
div#cgit div.diffstat-header {
font-weight: bold;
padding-top: 1.5em;
}
div#cgit table.diffstat {
border-collapse: collapse;
border: solid 1px var(--grey);
background-color: var(--very-light-grey);
}
div#cgit table.diffstat th {
font-weight: normal;
text-align: left;
text-decoration: underline;
padding: 0.1em 1em 0.1em 0.1em;
font-size: 100%;
}
div#cgit table.diffstat td {
padding: 0.2em 0.2em 0.1em 0.1em;
font-size: 100%;
border: none;
}
div#cgit table.diffstat td.mode {
white-space: nowrap;
}
div#cgit table.diffstat td span.modechange {
padding-left: 1em;
color: var(--red);
}
div#cgit table.diffstat td.add a {
color: var(--green);
}
div#cgit table.diffstat td.del a {
color: var(--red);
}
div#cgit table.diffstat td.upd a {
color: var(--blue);
}
div#cgit table.diffstat td.graph {
width: 500px;
vertical-align: middle;
}
div#cgit table.diffstat td.graph table {
border: none;
}
div#cgit table.diffstat td.graph td {
padding: 0px;
border: 0px;
height: 7pt;
}
div#cgit table.diffstat td.graph td.add {
background-color: var(--green);
}
div#cgit table.diffstat td.graph td.rem {
background-color: var(--dark-red);
}
div#cgit div.diffstat-summary {
color: var(--dark-grey);
padding-top: 0.5em;
}
div#cgit table.diff {
width: 100%;
}
div#cgit table.diff td {
font-family: monospace;
white-space: pre;
}
div#cgit table.diff td div.head {
font-weight: bold;
margin-top: 1em;
color: var(--black);
}
div#cgit table.diff td div.hunk {
color: var(--dark-blue);
}
div#cgit table.diff td div.add {
color: var(--green);
}
div#cgit table.diff td div.del {
color: var(--red);
}
div#cgit .sha1 {
font-family: monospace;
font-size: 90%;
}
div#cgit .left {
text-align: left;
}
div#cgit .right {
text-align: right;
}
div#cgit table.list td.reposection {
font-style: italic;
color: var(--dark-grey);
}
div#cgit a.button {
font-size: 90%;
padding: 0em 0.5em;
}
div#cgit a.primary {
font-size: 100%;
}
div#cgit a.secondary {
font-size: 90%;
}
div#cgit td.toplevel-repo {
}
div#cgit table.list td.sublevel-repo {
padding-left: 1.5em;
}
div#cgit ul.pager {
list-style-type: none;
text-align: center;
margin: 1em 0em 0em 0em;
padding: 0;
}
div#cgit ul.pager li {
display: inline-block;
margin: 0.25em 0.5em;
}
div#cgit ul.pager a {
color: var(--dark-grey);
}
div#cgit ul.pager .current {
font-weight: bold;
}
div#cgit span.age-mins {
font-weight: bold;
color: var(--green);
}
div#cgit span.age-hours {
color: var(--green);
}
div#cgit span.age-days {
color: var(--dark-green);
}
div#cgit span.age-months,
div#cgit span.age-weeks,
div#cgit span.age-years {
color: var(--dark-grey);
}
div#cgit span.insertions {
color: var(--green);
}
div#cgit span.deletions {
color: var(--dark-red);
}
div#cgit div.footer {
margin-top: 0.5em;
text-align: center;
font-size: 80%;
color: var(--dark-grey);
}
div#cgit div.footer a {
color: var(--blue);
text-decoration: none;
}
div#cgit div.footer a:hover {
text-decoration: underline;
}
div#cgit a.branch-deco,
div#cgit a.tag-deco,
div#cgit a.tag-annotated-deco,
div#cgit a.remote-deco,
div#cgit a.deco {
color: var(--black);
margin: 0px 0.5em;
padding: 0px 0.25em;
font-size: 90%;
}
div#cgit a.branch-deco {
background-color: var(--light-green);
border: solid 1px var(--dark-green);
}
div#cgit a.tag-deco {
background-color: var(--yellow);
border: solid 1px var(--olive);
}
div#cgit a.tag-annotated-deco {
background-color: var(--dark-yellow);
border: solid 1px var(--olive);
}
div#cgit a.remote-deco {
background-color: var(--remote-deco);
border: solid 1px var(--dark-blue);
}
div#cgit a.deco {
background-color: var(--deco);
border: solid 1px var(--dark-red);
}
div#cgit table.stats {
border: solid 1px var(--black);
border-collapse: collapse;
}
div#cgit table.stats th {
text-align: left;
padding: 1px 0.5em;
background-color: var(--very-light-grey);
border: solid 1px var(--black);
}
div#cgit table.stats td {
text-align: right;
padding: 1px 0.5em;
border: solid 1px var(--black);
}
div#cgit table.stats td.total {
font-weight: bold;
text-align: left;
}
div#cgit table.stats td.sum {
color: var(--dark-red);
font-weight: bold;
}
div#cgit table.stats td.left {
text-align: left;
}
div#cgit table.vgraph {
border-collapse: separate;
border: solid 1px var(--black);
height: 200px;
}
div#cgit table.vgraph th {
background-color: var(--very-light-grey);
font-weight: bold;
border: solid 1px var(--bg-l);
padding: 1px 0.5em;
}
div#cgit table.vgraph td {
vertical-align: bottom;
padding: 0px 10px;
}
div#cgit table.vgraph div.bar {
background-color: var(--very-light-grey);
}
div#cgit table.hgraph {
border: solid 1px var(--black);
width: 800px;
}
div#cgit table.hgraph th {
background-color: var(--very-light-grey);
font-weight: bold;
border: solid 1px var(--black);
padding: 1px 0.5em;
}
div#cgit table.hgraph td {
vertical-align: middle;
padding: 2px 2px;
}
div#cgit table.hgraph div.bar {
background-color: var(--very-light-grey);
height: 1em;
}
div#cgit table.ssdiff {
width: 100%;
}
div#cgit table.ssdiff td {
font-size: 90%;
font-family: monospace;
white-space: pre;
padding: 1px 4px 1px 4px;
border-left: solid 1px var(--grey);
border-right: solid 1px var(--grey);
}
div#cgit table.ssdiff td.add {
color: var(--black);
background: var(--sdiff-add-bg);
min-width: 50%;
}
div#cgit table.ssdiff td.add_dark {
color: var(--black);
background: var(--sdiff-add-dark-bg);
min-width: 50%;
}
div#cgit table.ssdiff span.add {
background: var(--sdiff-add-bg);
font-weight: bold;
}
div#cgit table.ssdiff td.del {
color: var(--black);
background: var(--sdiff-del-bg);
min-width: 50%;
}
div#cgit table.ssdiff td.del_dark {
color: var(--black);
background: var(--sdiff-del-dark-bg);
min-width: 50%;
}
div#cgit table.ssdiff span.del {
background: var(--sdiff-del-bg);
font-weight: bold;
}
div#cgit table.ssdiff td.changed {
color: var(--black);
background: var(--light-yellow);
min-width: 50%;
}
div#cgit table.ssdiff td.changed_dark {
color: var(--black);
background: var(--sdiff-cha-dark-bg);
min-width: 50%;
}
div#cgit table.ssdiff td.lineno {
color: var(--black);
background: var(--very-light-grey);
text-align: right;
width: 3em;
min-width: 3em;
}
div#cgit table.ssdiff td.hunk {
color: var(--black);
background: var(--sdiff-hunk-bg);
border-top: solid 1px var(--grey);
border-bottom: solid 1px var(--grey);
}
div#cgit table.ssdiff td.head {
border-top: solid 1px var(--grey);
border-bottom: solid 1px var(--grey);
}
div#cgit table.ssdiff td.head div.head {
font-weight: bold;
color: var(--black);
}
div#cgit table.ssdiff td.foot {
border-top: solid 1px var(--grey);
border-left: none;
border-right: none;
border-bottom: none;
}
div#cgit table.ssdiff td.space {
border: none;
}
div#cgit table.ssdiff td.space div {
min-height: 3em;
}

BIN
cgit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

45
cgitrc Normal file
View File

@ -0,0 +1,45 @@
# cgit config
# see cgitrc(5) for details
css=/cgit.css
logo=/cgit.png
favicon=/favicon.png
enable-http-clone=1
enable-commit-graph=1
enable-log-filecount=1
enable-log-linecount=1
max-stats=quarter
repository-sort=age
remove-suffix=1
# Specify the title/description of the root page
root-title=git.paritybit.ca
root-desc=Jake Bauer's Git Repositories
# Add some extra tags to the HTML <head>
head-include=/usr/share/cgit/custom-head.html
# Set the clone URL that will appear for every repo
clone-url=https://git.paritybit.ca/~jbauer/$CGIT_REPO_URL
# Set of snapshot formats for people to download
snapshots=tar.gz tar.bz2 zip
# Use python-pygments for syntax highlighting
source-filter=/usr/lib/cgit/filters/syntax-highlighting.py
# Auto-discover repos from this directory
scan-path=/srv/git
# Generate URLs relative to cgit's root
virtual-root=/
# Some common mimetypes for serving raw files
mimetype.gif=image/gif
mimetype.html=text/html
mimetype.jpg=image/jpeg
mimetype.jpeg=image/jpeg
mimetype.pdf=application/pdf
mimetype.png=image/png
mimetype.svg=image/svg+xml

3
custom-head.html Normal file
View File

@ -0,0 +1,3 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

BIN
favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

47
nginx.conf Normal file
View File

@ -0,0 +1,47 @@
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
tcp_nopush on;
tcp_nodelay on;
types_hash_max_size 2048;
error_log /var/log/nginx/error.log;
#Cgit
server {
listen 80;
server_name git.paritybit.ca;
root /usr/share/cgit;
try_files $uri @cgit;
location ~ /~jbauer(.*) {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /srv/git/;
fastcgi_param PATH_INFO $1;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
location @cgit {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi;
fastcgi_param PATH_INFO $uri;
fastcgi_param QUERY_STRING $args;
fastcgi_param HTTP_HOST $server_name;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
}
}

3
robots.txt Normal file
View File

@ -0,0 +1,3 @@
User-agent: *
Disallow: /*/snapshot/*
Allow: /