mirror of
https://github.com/simon987/sist2.git
synced 2025-04-19 18:26:43 +00:00
import magic database as a blob as last resort to make it work
This commit is contained in:
parent
9f2ad58f78
commit
09613eaaf9
@ -5,5 +5,6 @@ rm -rf index.sist2/
|
|||||||
python3 scripts/mime.py > src/parsing/mime_generated.c
|
python3 scripts/mime.py > src/parsing/mime_generated.c
|
||||||
python3 scripts/serve_static.py > src/web/static_generated.c
|
python3 scripts/serve_static.py > src/web/static_generated.c
|
||||||
python3 scripts/index_static.py > src/index/static_generated.c
|
python3 scripts/index_static.py > src/index/static_generated.c
|
||||||
|
python3 scripts/magic_static.py > src/magic_generated.c
|
||||||
|
|
||||||
printf "static const char *const Sist2CommitHash = \"%s\";\n" $(git rev-parse HEAD) > src/git_hash.h
|
printf "static const char *const Sist2CommitHash = \"%s\";\n" $(git rev-parse HEAD) > src/git_hash.h
|
8
scripts/magic_static.py
Normal file
8
scripts/magic_static.py
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
try:
|
||||||
|
with open("/usr/lib/file/magic.mgc", "rb") as f:
|
||||||
|
data = f.read()
|
||||||
|
except:
|
||||||
|
data = bytes([])
|
||||||
|
|
||||||
|
print("char magic_database_buffer[%d] = {%s};" % (len(data), ",".join(str(int(b)) for b in data)))
|
1
src/magic_generated.c
vendored
Normal file
1
src/magic_generated.c
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -5,6 +5,7 @@
|
|||||||
#include "mime.h"
|
#include "mime.h"
|
||||||
#include "src/io/serialize.h"
|
#include "src/io/serialize.h"
|
||||||
#include "src/parsing/sidecar.h"
|
#include "src/parsing/sidecar.h"
|
||||||
|
#include "src/magic_generated.c"
|
||||||
|
|
||||||
#include <magic.h>
|
#include <magic.h>
|
||||||
|
|
||||||
@ -143,7 +144,15 @@ void parse(void *arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
magic_t magic = magic_open(MAGIC_MIME_TYPE);
|
magic_t magic = magic_open(MAGIC_MIME_TYPE);
|
||||||
magic_load(magic, NULL);
|
|
||||||
|
const char *magic_buffers[1] = {magic_database_buffer,};
|
||||||
|
size_t sizes[1] = {sizeof(magic_database_buffer),};
|
||||||
|
|
||||||
|
int load_ret = magic_load_buffers(magic, (void **) &magic_buffers, sizes, 1);
|
||||||
|
|
||||||
|
if (load_ret != 0) {
|
||||||
|
LOG_FATALF("parse.c", "Could not load libmagic database: (%d)", load_ret)
|
||||||
|
}
|
||||||
|
|
||||||
const char *magic_mime_str = magic_buffer(magic, buf, bytes_read);
|
const char *magic_mime_str = magic_buffer(magic, buf, bytes_read);
|
||||||
if (magic_mime_str != NULL) {
|
if (magic_mime_str != NULL) {
|
||||||
|
10
src/web/static_generated.c
vendored
10
src/web/static_generated.c
vendored
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user