]> Nishi Git Mirror - mandshurica.git/commitdiff
addding installer
authornishi <nishi@f982e544-4a7d-3444-ad1a-fde59a2a69f1>
Sat, 11 May 2024 01:22:48 +0000 (01:22 +0000)
committernishi <nishi@f982e544-4a7d-3444-ad1a-fde59a2a69f1>
Sat, 11 May 2024 01:22:48 +0000 (01:22 +0000)
git-svn-id: file:///raid/svn-main/nishi-mandshurica/trunk@76 f982e544-4a7d-3444-ad1a-fde59a2a69f1

GNUmakefile
Mandshurica/GNUmakefile
Mandshurica/config.c
Module/GNUmakefile
Module/cookie.c
Tool/GNUmakefile
Webroot/GNUmakefile
Webroot/manage/index.html.tmpl [new file with mode: 0644]

index 84ce8d240aeaca55f267af903cc20ea1025e5fbc..ae23bcabdf4e3de7129aef700577b9a061468c4a 100644 (file)
@@ -1,6 +1,6 @@
 # $Id$
 PREFIX := /usr/local
-MODULE_PREFIX := $(PREFIX)/lib/mandshurica
+MODULE_PREFIX := $(PREFIX)/lib/mandshurica/module
 WEBROOT_PREFIX := $(PREFIX)/lib/mandshurica/webroot
 PROJECTS_PREFIX := $(PREFIX)/lib/mandshurica/projects
 TOOL_PREFIX := $(PREFIX)/lib/mandshurica/tool
@@ -35,6 +35,15 @@ replace:
                echo done; \
        done
 
+install: all
+       mkdir -p $(PREFIX) $(MODULE_PREFIX) $(WEBROOT_PREFIX) $(PROJECTS_PREFIX) $(TOOL_PREFIX) $(PREFIX)/etc $(PREFIX)/bin $(PREFIX)/lib/mandshurica/db
+       touch $(PREFIX)/lib/mandshurica/db/auth.db $(PREFIX)/lib/mandshurica/db/login.db $(PREFIX)/lib/mandshurica/db/project.db
+       ./Mandshurica/mandshurica --create $(PREFIX)/etc/mandshurica.conf
+       $(MAKE) -C ./Mandshurica install PREFIX="$(PREFIX)" MODULE_PREFIX="$(MODULE_PREFIX)" PROJECTS_PREFIX="$(PROJECTS_PREFIX)" TOOL_PREFIX="$(TOOL_PREFIX)" WEBROOT_PREFIX="$(WEBROOT_PREFIX)"
+       $(MAKE) -C ./Module install PREFIX="$(PREFIX)" MODULE_PREFIX="$(MODULE_PREFIX)" PROJECTS_PREFIX="$(PROJECTS_PREFIX)" TOOL_PREFIX="$(TOOL_PREFIX)" WEBROOT_PREFIX="$(WEBROOT_PREFIX)"
+       $(MAKE) -C ./Tool install PREFIX="$(PREFIX)" MODULE_PREFIX="$(MODULE_PREFIX)" PROJECTS_PREFIX="$(PROJECTS_PREFIX)" TOOL_PREFIX="$(TOOL_PREFIX)" WEBROOT_PREFIX="$(WEBROOT_PREFIX)"
+       $(MAKE) -C ./Webroot install PREFIX="$(PREFIX)" MODULE_PREFIX="$(MODULE_PREFIX)" PROJECTS_PREFIX="$(PROJECTS_PREFIX)" TOOL_PREFIX="$(TOOL_PREFIX)" WEBROOT_PREFIX="$(WEBROOT_PREFIX)"
+
 clean:
        $(MAKE) -C ./Mandshurica clean
        $(MAKE) -C ./Module clean
index 58484918367f2bbf63bbc6660b037c9ddfe3d35b..bd7e82b942d5aa5136b9237a74ed5ed1ba138e5a 100644 (file)
@@ -4,7 +4,7 @@ EXTRA_CFLAGS = -pthread
 EXTRA_LDFLAGS =
 EXTRA_LIBS = -pthread -lcrypto
 
-.PHONY: all clean
+.PHONY: all clean install
 
 ifeq ($(shell uname -s),Linux)
 EXTRA_LIBS += -ldl
@@ -21,5 +21,8 @@ all: ./mandshurica
 ./%.o: ./%.c ./mandshurica%.h
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
        
+install:
+       cp ./mandshurica $(PREFIX)/bin/
+
 clean:
        rm -f ./mandshurica ./*.o
index 5524d318a2ac5761749d9d4dad9f53b9eba10c1f..bc4fc055428c4c4db34ee6d792dbe4134bc9429c 100644 (file)
@@ -155,7 +155,7 @@ int mandshurica_load_config(const char* path) {
                                                                if(value[0] == '/') {
                                                                        path = mandshurica_strdup(value);
                                                                } else {
-                                                                       path = mandshurica_strcat3(server_root, "/", value);
+                                                                       path = mandshurica_strcat3(server_root, "/lib/mandshurica/module/", value);
                                                                }
                                                                void* lib = dlopen(path, RTLD_LAZY);
                                                                if(lib != NULL) {
@@ -211,9 +211,9 @@ int mandshurica_create_config(const char* path) {
                fprintf(f, "# Generated by Mandshurica " MANDSHURICA_VERSION "\n");
                fprintf(f, "ServerRoot %s\n", PREFIX);
                fprintf(f, "\n");
-               fprintf(f, "Set LoginDB %s/login.db\n", PREFIX);
-               fprintf(f, "Set CookieDB %s/cookie.db\n", PREFIX);
-               fprintf(f, "Set ProjectDB %s/project.db\n", PREFIX);
+               fprintf(f, "Set AuthDB %s/lib/mandshurica/db/auth.db\n", PREFIX);
+               fprintf(f, "Set LoginDB %s/lib/mandshurica/db/login.db\n", PREFIX);
+               fprintf(f, "Set ProjectDB %s/lib/mandshurica/db/project.db\n", PREFIX);
                fprintf(f, "Set HTTPPort 1024\n");
                fprintf(f, "Set HTTPRoot %s\n", WEBROOT_PREFIX);
                fprintf(f, "Set HTMLManage %s/html-manage\n", TOOL_PREFIX);
index d73b1e5eb2863b1a9e670fa8b47660f7dcee87fe..66fee1b326a390ba7acc256ec1a01a575aac907a 100644 (file)
@@ -4,7 +4,7 @@ EXTRA_CFLAGS = -fPIC
 EXTRA_LDFLAGS = -shared
 EXTRA_LIBS =
 
-.PHONY: all clean
+.PHONY: all clean install
 
 ifeq ($(shell uname -s),Linux)
 EXTRA_LIBS += -ldl
@@ -27,5 +27,8 @@ all: ./subversion.so ./syslog.so ./http.so ./cookie.so
 ./%.o: ./%.c ../Mandshurica/mandshurica.h
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
 
+install:
+       cp *.so $(MODULE_PREFIX)/
+
 clean:
        rm -f *.so *.o
index ddcab9e7857eabbe7e7f0cb04f46564bcb5b2418..7daae93e8a7a72524caf8b5bdd70df03741f9370 100644 (file)
@@ -49,10 +49,10 @@ int mod_init(struct mandshurica_config* _config) {
        config = _config;
        config->mandshurica_log(MS_INFO, "Cookie authentication Module init");
 
-       char* db = config->mandshurica_get_param("CookieDB");
+       char* db = config->mandshurica_get_param("AuthDB");
 
        if(db == NULL) {
-               config->mandshurica_log(MS_ERROR, "Cookie authentication Database path is not set!");
+               config->mandshurica_log(MS_ERROR, "Cookie authentication Database path is not set! (AuthDB)");
                return 1;
        }
 
@@ -60,6 +60,17 @@ int mod_init(struct mandshurica_config* _config) {
        config->mandshurica_log(MS_INFO, log);
        free(log);
 
+       db = config->mandshurica_get_param("LoginDB");
+
+       if(db == NULL) {
+               config->mandshurica_log(MS_ERROR, "Cookie token Database path is not set! (LoginDB)");
+               return 1;
+       }
+
+       log = mandshurica_strcat("Cookie token Database is ", db);
+       config->mandshurica_log(MS_INFO, log);
+       free(log);
+
        return 0;
 }
 
@@ -96,7 +107,7 @@ int mod_auth(const char* username, const char* password, char** ptr) {
        }
        if(login) {
                *ptr = NULL;
-               struct ms_db* db = mandshurica_db_open(config->mandshurica_get_param("CookieDB"));
+               struct ms_db* db = mandshurica_db_open(config->mandshurica_get_param("AuthDB"));
                if(db != NULL) {
                        char* pwd = mandshurica_db_get(db, username);
                        if(pwd == NULL) {
index da09faeee2ba9de278b7737fddf38cfbdbfe0dbd..054ac9615cd3013e7677375410bf2de5dc04f451 100644 (file)
@@ -4,7 +4,7 @@ EXTRA_CFLAGS =
 EXTRA_LDFLAGS =
 EXTRA_LIBS =
 
-.PHONY: all clean
+.PHONY: all clean install
 
 all: ./html-manage
 
@@ -19,6 +19,9 @@ all: ./html-manage
 
 ./db.o: ../Mandshurica/db.c
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
-       
+
+install:
+       cp ./html-manage $(TOOL_PREFIX)/
+
 clean:
        rm -f ./html-manage *.o
index fbbab2d1199b1de168c7f25fb5e7eac727b3d066..0fb322d38febebc026e1e333249f0bd222a9ca28 100644 (file)
@@ -1 +1,6 @@
 # $Id$
+.PHONY: install
+
+install:
+       cp -rf * $(WEBROOT_PREFIX)/
+       rm $(WEBROOT_PREFIX)/GNUmakefile
diff --git a/Webroot/manage/index.html.tmpl b/Webroot/manage/index.html.tmpl
new file mode 100644 (file)
index 0000000..4df128d
--- /dev/null
@@ -0,0 +1,16 @@
+<!--@chdir_webroot@
+vim: syntax=html
+-->
+@include head-start.html@
+<title>Mandshurica - Manage</title>
+@include body-start.html@
+<h1>Mandshurica - Manage</h1>
+@include bar.html@
+@ifnot login@
+You are not authorized to see this page. <a href="/login">Login</a>?
+@endif@
+@if login@
+Manage your projects here.<br>
+@exec $Config_HTMLManage $Config_ProjectDB@
+@endif@
+@include end.html@