mirror of
https://github.com/jorisvink/kore
synced 2025-03-09 12:39:01 -04:00
Add pyko, not linked to build.
This commit is contained in:
parent
9c337ded1e
commit
bf4361092c
6
pyko/.gitignore
vendored
Normal file
6
pyko/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
*.o
|
||||
.flavor
|
||||
.objs
|
||||
pyko.so
|
||||
assets.h
|
||||
cert
|
19
pyko/Makefile
Normal file
19
pyko/Makefile
Normal file
@ -0,0 +1,19 @@
|
||||
# pyko Makefile
|
||||
|
||||
BIN=pyko
|
||||
PREFIX?=/usr/local
|
||||
INSTALL_DIR=$(PREFIX)/bin
|
||||
|
||||
KODEV?=../kodev/kodev
|
||||
|
||||
build:
|
||||
$(KODEV) build
|
||||
|
||||
clean:
|
||||
$(KODEV) clean
|
||||
|
||||
install:
|
||||
install -m 555 $(BIN) $(INSTALL_DIR)/$(BIN)
|
||||
|
||||
uninstall:
|
||||
rm -f $(INSTALL_DIR)/$(BIN)
|
39
pyko/README.md
Normal file
39
pyko/README.md
Normal file
@ -0,0 +1,39 @@
|
||||
About
|
||||
-----
|
||||
Pyko is a single binary kore build aimed at starting kore python applications
|
||||
in a more easy and straight forward manner.
|
||||
|
||||
Building
|
||||
--------
|
||||
This kore application builds with PYTHON=1 and PGSQL=1 automatically.
|
||||
See the kore README file on what dependencies are required for this.
|
||||
|
||||
From the root kore directory run:
|
||||
|
||||
```
|
||||
$ make -C kodev
|
||||
$ make -C pyko
|
||||
$ sudo make -C pyko install
|
||||
```
|
||||
|
||||
App layout
|
||||
----------
|
||||
Your python application directory must have the following layout:
|
||||
|
||||
```
|
||||
app/
|
||||
kore.conf <- actual kore configuration
|
||||
__init__.py <- usual python init stuff
|
||||
```
|
||||
|
||||
Usage
|
||||
-----
|
||||
```
|
||||
$ pyko -frn python_app
|
||||
```
|
||||
|
||||
```
|
||||
-f = foreground
|
||||
-n = skip chroot
|
||||
-r = skip privilege drop
|
||||
```
|
17
pyko/conf/build.conf
Normal file
17
pyko/conf/build.conf
Normal file
@ -0,0 +1,17 @@
|
||||
# pyko build config
|
||||
|
||||
single_binary=yes
|
||||
kore_source=../
|
||||
kore_flavor=PYTHON=1 PGSQL=1
|
||||
|
||||
cflags=-std=c99 -pedantic
|
||||
cflags=-Wall -Wmissing-declarations -Wshadow
|
||||
cflags=-Wstrict-prototypes -Wmissing-prototypes
|
||||
cflags=-Wpointer-arith -Wcast-qual -Wsign-compare
|
||||
|
||||
dev {
|
||||
cflags=-g
|
||||
}
|
||||
|
||||
prod {
|
||||
}
|
1
pyko/conf/pyko.conf
Normal file
1
pyko/conf/pyko.conf
Normal file
@ -0,0 +1 @@
|
||||
# pyko configuration
|
37
pyko/src/pyko.c
Normal file
37
pyko/src/pyko.c
Normal file
@ -0,0 +1,37 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <kore/kore.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <limits.h>
|
||||
|
||||
void
|
||||
kore_parent_configure(int argc, char **argv)
|
||||
{
|
||||
struct stat st;
|
||||
int len;
|
||||
FILE *fp;
|
||||
char config[PATH_MAX];
|
||||
|
||||
if (argc != 1)
|
||||
fatal("Usage: pyko [python app]");
|
||||
|
||||
if (stat(argv[0], &st) == -1)
|
||||
fatal("stat(%s): %s", argv[0], errno_s);
|
||||
|
||||
if (!S_ISDIR(st.st_mode))
|
||||
fatal("python module directory required");
|
||||
|
||||
len = snprintf(config, sizeof(config), "%s/kore.conf", argv[0]);
|
||||
if (len == -1 || (size_t)len >= sizeof(config))
|
||||
fatal("failed to create configuration path");
|
||||
|
||||
if ((fp = fopen(config, "r")) == NULL)
|
||||
fatal("failed to open configuration '%s'", config);
|
||||
|
||||
kore_module_load(argv[0], NULL, KORE_MODULE_PYTHON);
|
||||
|
||||
/* kore_parse_config_file() will call fclose(). */
|
||||
kore_parse_config_file(fp);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user