diff options
| -rwxr-xr-x | del_repo | 9 | ||||
| -rwxr-xr-x | gitscripts.conf.example | 3 | ||||
| -rwxr-xr-x | klaus/Dockerfile | 11 | ||||
| -rwxr-xr-x | klaus/app.py | 12 | ||||
| -rwxr-xr-x | klaus/docker-compose.yml | 16 | ||||
| -rwxr-xr-x | klaus/requirements.txt | 2 | ||||
| -rwxr-xr-x | make_repo.py | 11 | 
7 files changed, 58 insertions, 6 deletions
| @@ -1,9 +1,8 @@  #!/bin/bash -echo -n "Input repo name to delete: " +echo -n "Input repo name to delete (excluding the .git suffix): "  read repo -rm -fvr /srv/git/$repo -rm -fvr ~/$repo -rm -fvr ~/$repo.git - +rm -fvr /srv/git/$repo.git +rm -fvr ~/$repo* +rm -fv /srv/www/repositories/$repo* diff --git a/gitscripts.conf.example b/gitscripts.conf.example index a2596a4..4acf70d 100755 --- a/gitscripts.conf.example +++ b/gitscripts.conf.example @@ -1,9 +1,10 @@  [git]  repo_path = /srv/git +repo_meta_path = /srv/www/repositories  domain = git.eda.gay  gitignore_templates = /srv/www/gitignore  license_templates = /srv/www/license-templates/templates  [github]  user = jwansek -key = ******************************
\ No newline at end of file +key = ****************************** diff --git a/klaus/Dockerfile b/klaus/Dockerfile new file mode 100755 index 0000000..bfaca80 --- /dev/null +++ b/klaus/Dockerfile @@ -0,0 +1,11 @@ +FROM jonashaag/klaus:latest +MAINTAINER Eden Attenborough "eda@e.email" +ENV TZ=Europe/London +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + +COPY . /app +WORKDIR /app +RUN pip3 install -r requirements.txt +ENTRYPOINT ["python3"] +CMD ["app.py"] + diff --git a/klaus/app.py b/klaus/app.py new file mode 100755 index 0000000..3ddd08b --- /dev/null +++ b/klaus/app.py @@ -0,0 +1,12 @@ +import configparser +import waitress +import klaus +import os + +repositories = ["/srv/git/git-scripts.git", "/srv/git/anExampleRepo%21.git"] + + +if __name__ == "__main__": +    app = klaus.make_app(repositories, "Eden's git server - Repositories") +    waitress.serve(app, host = "0.0.0.0", port = 80, threads = int(os.environ["APP_THREADS"])) + diff --git a/klaus/docker-compose.yml b/klaus/docker-compose.yml new file mode 100755 index 0000000..e980485 --- /dev/null +++ b/klaus/docker-compose.yml @@ -0,0 +1,16 @@ +version: '3' + +services: +    klaus: +        container_name: klaus +        build: +            context: . +            dockerfile: Dockerfile +        image: jwansek/klaus +        user: "1002:1000" +        environment: +            - APP_THREADS=4 +        volumes: +            - '/media/git:/srv/git:ro' +        ports: +            - '81:80' diff --git a/klaus/requirements.txt b/klaus/requirements.txt new file mode 100755 index 0000000..dbdd421 --- /dev/null +++ b/klaus/requirements.txt @@ -0,0 +1,2 @@ +waitress + diff --git a/make_repo.py b/make_repo.py index f40ed9a..6d8f3eb 100755 --- a/make_repo.py +++ b/make_repo.py @@ -64,6 +64,17 @@ with ChangeCWD(repo_dir):  subprocess.run(["ln", "-s", os.path.join(os.path.dirname(conf_path), "post-receive-hook.sh"), os.path.join(repo_dir, "hooks", "post-receive")]) +repo_metadata_path = os.path.join(CONFIG.get("git", "repo_meta_path"), repo_name + ".conf") +repo_metadata = configparser.ConfigParser() +repo_metadata[repo_name] = { +    "name": repo_name, +    "path": repo_dir, +    "visible": not private, +    "url": repo_url +} +with open(repo_metadata_path, "w") as f: +    repo_metadata.write(f) +  if input("Would you like the repository to remain bare? Useful for making mirrors of Github repos. <y/n>: ").lower() != "y":       with tempfile.TemporaryDirectory() as tempdir:          subprocess.run(["git", "clone", repo_url, tempdir]) | 
