From: Nishi Date: Wed, 21 Aug 2024 02:13:48 +0000 (+0000) Subject: adding repo viewer... soon X-Git-Url: https://git.chaotic.ninja/gitweb/nishi/?a=commitdiff_plain;h=87fbb8ade6a744abeb55ab05219fe1cf3cdd47bd;p=repoview.git adding repo viewer... soon git-svn-id: file:///raid/svn-personal/repoview/trunk@10 7e8b2a19-8934-dd40-8cb3-db22cdd5a80f --- diff --git a/CGI/Makefile b/CGI/Makefile index f64fc55..2792f65 100644 --- a/CGI/Makefile +++ b/CGI/Makefile @@ -5,7 +5,7 @@ include $(PWD)/Platform/$(PLATFORM).mk .PHONY: all clean .SUFFIXES: .c .o -OBJS = main.o sanity.o version.o util.o query.o page.o sha512.o $(EXTOBJS) +OBJS = main.o sanity.o version.o util.o query.o page.o sha512.o repo.o $(EXTOBJS) all: repoview.cgi diff --git a/CGI/repo.c b/CGI/repo.c new file mode 100644 index 0000000..96e70fd --- /dev/null +++ b/CGI/repo.c @@ -0,0 +1,3 @@ +/* $Id$ */ + +#include "rv_repo.h" diff --git a/CGI/rv_repo.h b/CGI/rv_repo.h new file mode 100644 index 0000000..e548190 --- /dev/null +++ b/CGI/rv_repo.h @@ -0,0 +1,6 @@ +/* $Id$ */ + +#ifndef __RV_REPO_H__ +#define __RV_REPO_H__ + +#endif diff --git a/CGI/rv_util.h b/CGI/rv_util.h index 98ce5a5..0c2939a 100644 --- a/CGI/rv_util.h +++ b/CGI/rv_util.h @@ -15,5 +15,6 @@ char* rv_strdup(const char* str); char* rv_url_decode(const char* str); void rv_error_http(void); char* rv_new_token(const char* username); +char* rv_construct_repouser(const char* reponame, const char* username); #endif diff --git a/CGI/theme/modern.c b/CGI/theme/modern.c index d3670bd..3272419 100644 --- a/CGI/theme/modern.c +++ b/CGI/theme/modern.c @@ -20,6 +20,7 @@ void render_stuff(); char* title = NULL; char* desc = NULL; char* page = NULL; +char* nav = NULL; extern char* user; void render_page(void) { @@ -102,6 +103,26 @@ void render_page(void) { page = rv_strdup("It looks like you are not logged in.
Want to log in?\n"); + } else { + nav = rv_strdup(""); + add_data(&nav, "
  • Create a repository
  • \n"); + add_data(&nav, "
  • Repository List
  • \n"); + page = rv_strdup(""); + add_data(&page, "

    Create a repository

    \n"); + add_data(&page, "
    \n"); + add_data(&page, " \n"); + add_data(&page, " \n"); + add_data(&page, " \n"); + add_data(&page, " \n"); + add_data(&page, " \n"); + add_data(&page, " \n"); + add_data(&page, "
    Repository name\n"); + add_data(&page, " \n"); + add_data(&page, "
    \n"); + add_data(&page, "
    \n"); + add_data(&page, "

    Repository List

    \n"); } } else if(strcmp(query, "logout") == 0) { title = rv_strdup("Logout"); @@ -124,10 +145,12 @@ void render_page(void) { if(title == NULL) title = rv_strdup(""); if(desc == NULL) desc = rv_strdup(""); if(page == NULL) page = rv_strdup(""); + if(nav == NULL) nav = rv_strdup(""); render_stuff(); free(page); free(desc); free(title); + free(nav); } char* escape(const char* str) { @@ -324,6 +347,7 @@ void render_stuff(void) { add_data(&buffer, "
    \n"); add_data(&buffer, "

    Page Menu

    \n"); add_data(&buffer, " \n"); add_data(&buffer, "
    \n"); add_data(&buffer, "
    \n"); diff --git a/CGI/util.c b/CGI/util.c index ef8d199..4c84ecb 100644 --- a/CGI/util.c +++ b/CGI/util.c @@ -75,6 +75,13 @@ char* rv_url_decode(const char* str) { return r; } +char* rv_construct_repouser(const char* reponame, const char* username) { + char cbuf[2]; + cbuf[0] = REPO_USER_DELIM; + cbuf[1] = 0; + return rv_strcat3(reponame, cbuf, username); +} + char* rv_new_token(const char* username) { const char tokenstr[] = "0123456789abcdefghijklmnopqrstuvwxyz"; char* token = malloc(17); diff --git a/check.c b/check.c index 81db51f..3a6d342 100644 --- a/check.c +++ b/check.c @@ -82,6 +82,10 @@ int check_files(void) { #ifndef APACHE_AUTHZ fprintf(stderr, "Apache authz file is not set.\n"); st = 1; +#endif +#ifndef REPO_USER_DELIM + fprintf(stderr, "Repo/User delimeter is not set.\n"); + st = 1; #endif return st; } diff --git a/config.h.tmpl b/config.h.tmpl index 76840b4..9c2d89c 100644 --- a/config.h.tmpl +++ b/config.h.tmpl @@ -25,6 +25,9 @@ /* Navbar repeat, for the modern theme. */ #define INSTANCE_REPEAT "resize-x" +/* Repository/User delimeter. This character will be unusable in the username/repository name. */ +#define REPO_USER_DELIM '@' + /* Theme. */ #define USE_MODERN