mirror of
https://github.com/tstack/lnav.git
synced 2024-08-17 17:00:30 +03:00
[demo] build/deploy stuff for ssh-based demo
fix structure name clash
This commit is contained in:
parent
4b307b5b4f
commit
220317eb16
36
demo/Dockerfile
Normal file
36
demo/Dockerfile
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
FROM debian:11.3-slim
|
||||||
|
|
||||||
|
RUN set -eux; \
|
||||||
|
export DEBIAN_FRONTEND=noninteractive; \
|
||||||
|
apt update; \
|
||||||
|
apt install --yes --no-install-recommends bind9-dnsutils iputils-ping iproute2 curl ca-certificates htop wget unzip openssh-server; \
|
||||||
|
apt clean autoclean; \
|
||||||
|
apt autoremove --yes; \
|
||||||
|
wget https://github.com/tstack/lnav/releases/download/v0.11.0-beta2/lnav-0.11.0-musl-64bit.zip; \
|
||||||
|
unzip lnav-0.11.0-musl-64bit.zip; \
|
||||||
|
rm -rf /var/lib/{apt,dpkg,cache,log}/; \
|
||||||
|
echo "Installed base utils!"
|
||||||
|
|
||||||
|
COPY docs/tutorials tutorials
|
||||||
|
|
||||||
|
RUN useradd -rm -d /home/logs -s /bin/bash logs
|
||||||
|
RUN echo 'logs:logs' | chpasswd
|
||||||
|
RUN passwd -d logs
|
||||||
|
|
||||||
|
RUN useradd -rm -d /home/tutorial1 -s /bin/bash tutorial1
|
||||||
|
RUN echo 'tutorial1:tutorial1' | chpasswd
|
||||||
|
RUN passwd -d tutorial1
|
||||||
|
|
||||||
|
USER tutorial1
|
||||||
|
RUN /lnav-0.11.0/lnav -nN -c ":config /ui/theme monocai"
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN echo 'ForceCommand env LNAVSECURE=1 TERM=xterm-256color /lnav-0.11.0/lnav -c ":switch-to-view text" -I /tutorials/tutorial-lib /tutorials/tutorial1/tutorial1.glog /tutorials/tutorial1/index.md#tutorial-1' >> /etc/ssh/sshd_config
|
||||||
|
RUN echo 'PermitEmptyPasswords yes' >> /etc/ssh/sshd_config
|
||||||
|
RUN cat /etc/ssh/sshd_config
|
||||||
|
RUN service ssh start
|
||||||
|
EXPOSE 22
|
||||||
|
|
||||||
|
CMD ["/usr/sbin/sshd", "-D"]
|
35
demo/fly.toml
Normal file
35
demo/fly.toml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# fly.toml file generated for lnav-demo on 2022-08-22T10:26:28-07:00
|
||||||
|
|
||||||
|
app = "lnav-demo"
|
||||||
|
kill_signal = "SIGINT"
|
||||||
|
kill_timeout = 5
|
||||||
|
processes = []
|
||||||
|
|
||||||
|
[env]
|
||||||
|
|
||||||
|
[experimental]
|
||||||
|
allowed_public_ports = []
|
||||||
|
auto_rollback = true
|
||||||
|
|
||||||
|
[[services]]
|
||||||
|
http_checks = []
|
||||||
|
internal_port = 22
|
||||||
|
processes = ["app"]
|
||||||
|
protocol = "tcp"
|
||||||
|
script_checks = []
|
||||||
|
[services.concurrency]
|
||||||
|
hard_limit = 25
|
||||||
|
soft_limit = 20
|
||||||
|
type = "connections"
|
||||||
|
|
||||||
|
[[services.ports]]
|
||||||
|
port = 22
|
||||||
|
|
||||||
|
[[services.tcp_checks]]
|
||||||
|
grace_period = "1s"
|
||||||
|
interval = "15s"
|
||||||
|
restart_limit = 0
|
||||||
|
timeout = "2s"
|
||||||
|
|
||||||
|
[build]
|
||||||
|
image = "lnav-demo"
|
@ -51,7 +51,7 @@ struct vtab {
|
|||||||
sqlite3* db;
|
sqlite3* db;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vtab_cursor {
|
struct env_vtab_cursor {
|
||||||
sqlite3_vtab_cursor base;
|
sqlite3_vtab_cursor base;
|
||||||
char** env_cursor;
|
char** env_cursor;
|
||||||
};
|
};
|
||||||
@ -128,7 +128,7 @@ vt_open(sqlite3_vtab* p_svt, sqlite3_vtab_cursor** pp_cursor)
|
|||||||
|
|
||||||
p_vt->base.zErrMsg = NULL;
|
p_vt->base.zErrMsg = NULL;
|
||||||
|
|
||||||
vtab_cursor* p_cur = (vtab_cursor*) new vtab_cursor();
|
env_vtab_cursor* p_cur = (env_vtab_cursor*) new env_vtab_cursor();
|
||||||
|
|
||||||
if (p_cur == NULL) {
|
if (p_cur == NULL) {
|
||||||
return SQLITE_NOMEM;
|
return SQLITE_NOMEM;
|
||||||
@ -145,7 +145,7 @@ vt_open(sqlite3_vtab* p_svt, sqlite3_vtab_cursor** pp_cursor)
|
|||||||
static int
|
static int
|
||||||
vt_close(sqlite3_vtab_cursor* cur)
|
vt_close(sqlite3_vtab_cursor* cur)
|
||||||
{
|
{
|
||||||
vtab_cursor* p_cur = (vtab_cursor*) cur;
|
env_vtab_cursor* p_cur = (env_vtab_cursor*) cur;
|
||||||
|
|
||||||
/* Free cursor struct. */
|
/* Free cursor struct. */
|
||||||
delete p_cur;
|
delete p_cur;
|
||||||
@ -156,7 +156,7 @@ vt_close(sqlite3_vtab_cursor* cur)
|
|||||||
static int
|
static int
|
||||||
vt_eof(sqlite3_vtab_cursor* cur)
|
vt_eof(sqlite3_vtab_cursor* cur)
|
||||||
{
|
{
|
||||||
vtab_cursor* vc = (vtab_cursor*) cur;
|
env_vtab_cursor* vc = (env_vtab_cursor*) cur;
|
||||||
|
|
||||||
return vc->env_cursor[0] == NULL;
|
return vc->env_cursor[0] == NULL;
|
||||||
}
|
}
|
||||||
@ -164,7 +164,7 @@ vt_eof(sqlite3_vtab_cursor* cur)
|
|||||||
static int
|
static int
|
||||||
vt_next(sqlite3_vtab_cursor* cur)
|
vt_next(sqlite3_vtab_cursor* cur)
|
||||||
{
|
{
|
||||||
vtab_cursor* vc = (vtab_cursor*) cur;
|
env_vtab_cursor* vc = (env_vtab_cursor*) cur;
|
||||||
|
|
||||||
if (vc->env_cursor[0] != NULL) {
|
if (vc->env_cursor[0] != NULL) {
|
||||||
vc->env_cursor += 1;
|
vc->env_cursor += 1;
|
||||||
@ -176,7 +176,7 @@ vt_next(sqlite3_vtab_cursor* cur)
|
|||||||
static int
|
static int
|
||||||
vt_column(sqlite3_vtab_cursor* cur, sqlite3_context* ctx, int col)
|
vt_column(sqlite3_vtab_cursor* cur, sqlite3_context* ctx, int col)
|
||||||
{
|
{
|
||||||
vtab_cursor* vc = (vtab_cursor*) cur;
|
env_vtab_cursor* vc = (env_vtab_cursor*) cur;
|
||||||
const char* eq = strchr(vc->env_cursor[0], '=');
|
const char* eq = strchr(vc->env_cursor[0], '=');
|
||||||
|
|
||||||
switch (col) {
|
switch (col) {
|
||||||
@ -197,7 +197,7 @@ vt_column(sqlite3_vtab_cursor* cur, sqlite3_context* ctx, int col)
|
|||||||
static int
|
static int
|
||||||
vt_rowid(sqlite3_vtab_cursor* cur, sqlite_int64* p_rowid)
|
vt_rowid(sqlite3_vtab_cursor* cur, sqlite_int64* p_rowid)
|
||||||
{
|
{
|
||||||
vtab_cursor* p_cur = (vtab_cursor*) cur;
|
env_vtab_cursor* p_cur = (env_vtab_cursor*) cur;
|
||||||
|
|
||||||
*p_rowid = (int64_t) p_cur->env_cursor[0];
|
*p_rowid = (int64_t) p_cur->env_cursor[0];
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ struct static_file_info {
|
|||||||
ghc::filesystem::path sfi_path;
|
ghc::filesystem::path sfi_path;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vtab_cursor {
|
struct sf_vtab_cursor {
|
||||||
sqlite3_vtab_cursor base;
|
sqlite3_vtab_cursor base;
|
||||||
std::map<std::string, static_file_info>::iterator vc_files_iter;
|
std::map<std::string, static_file_info>::iterator vc_files_iter;
|
||||||
std::map<std::string, static_file_info> vc_files;
|
std::map<std::string, static_file_info> vc_files;
|
||||||
@ -133,7 +133,7 @@ sfvt_destroy(sqlite3_vtab* p_vt)
|
|||||||
static int sfvt_next(sqlite3_vtab_cursor* cur);
|
static int sfvt_next(sqlite3_vtab_cursor* cur);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
find_static_files(vtab_cursor* p_cur, const ghc::filesystem::path& dir)
|
find_static_files(sf_vtab_cursor* p_cur, const ghc::filesystem::path& dir)
|
||||||
{
|
{
|
||||||
auto& file_map = p_cur->vc_files;
|
auto& file_map = p_cur->vc_files;
|
||||||
std::error_code ec;
|
std::error_code ec;
|
||||||
@ -165,7 +165,7 @@ sfvt_open(sqlite3_vtab* p_svt, sqlite3_vtab_cursor** pp_cursor)
|
|||||||
|
|
||||||
p_vt->base.zErrMsg = NULL;
|
p_vt->base.zErrMsg = NULL;
|
||||||
|
|
||||||
vtab_cursor* p_cur = (vtab_cursor*) new vtab_cursor();
|
sf_vtab_cursor* p_cur = (sf_vtab_cursor*) new sf_vtab_cursor();
|
||||||
|
|
||||||
if (p_cur == nullptr) {
|
if (p_cur == nullptr) {
|
||||||
return SQLITE_NOMEM;
|
return SQLITE_NOMEM;
|
||||||
@ -190,7 +190,7 @@ sfvt_open(sqlite3_vtab* p_svt, sqlite3_vtab_cursor** pp_cursor)
|
|||||||
static int
|
static int
|
||||||
sfvt_close(sqlite3_vtab_cursor* cur)
|
sfvt_close(sqlite3_vtab_cursor* cur)
|
||||||
{
|
{
|
||||||
vtab_cursor* p_cur = (vtab_cursor*) cur;
|
sf_vtab_cursor* p_cur = (sf_vtab_cursor*) cur;
|
||||||
|
|
||||||
p_cur->vc_files_iter = p_cur->vc_files.end();
|
p_cur->vc_files_iter = p_cur->vc_files.end();
|
||||||
/* Free cursor struct. */
|
/* Free cursor struct. */
|
||||||
@ -202,7 +202,7 @@ sfvt_close(sqlite3_vtab_cursor* cur)
|
|||||||
static int
|
static int
|
||||||
sfvt_eof(sqlite3_vtab_cursor* cur)
|
sfvt_eof(sqlite3_vtab_cursor* cur)
|
||||||
{
|
{
|
||||||
vtab_cursor* vc = (vtab_cursor*) cur;
|
sf_vtab_cursor* vc = (sf_vtab_cursor*) cur;
|
||||||
|
|
||||||
return vc->vc_files_iter == vc->vc_files.end();
|
return vc->vc_files_iter == vc->vc_files.end();
|
||||||
}
|
}
|
||||||
@ -210,7 +210,7 @@ sfvt_eof(sqlite3_vtab_cursor* cur)
|
|||||||
static int
|
static int
|
||||||
sfvt_next(sqlite3_vtab_cursor* cur)
|
sfvt_next(sqlite3_vtab_cursor* cur)
|
||||||
{
|
{
|
||||||
vtab_cursor* vc = (vtab_cursor*) cur;
|
sf_vtab_cursor* vc = (sf_vtab_cursor*) cur;
|
||||||
|
|
||||||
if (vc->vc_files_iter != vc->vc_files.end()) {
|
if (vc->vc_files_iter != vc->vc_files.end()) {
|
||||||
++vc->vc_files_iter;
|
++vc->vc_files_iter;
|
||||||
@ -222,7 +222,7 @@ sfvt_next(sqlite3_vtab_cursor* cur)
|
|||||||
static int
|
static int
|
||||||
sfvt_column(sqlite3_vtab_cursor* cur, sqlite3_context* ctx, int col)
|
sfvt_column(sqlite3_vtab_cursor* cur, sqlite3_context* ctx, int col)
|
||||||
{
|
{
|
||||||
vtab_cursor* vc = (vtab_cursor*) cur;
|
sf_vtab_cursor* vc = (sf_vtab_cursor*) cur;
|
||||||
|
|
||||||
switch (col) {
|
switch (col) {
|
||||||
case 0:
|
case 0:
|
||||||
@ -260,7 +260,7 @@ sfvt_column(sqlite3_vtab_cursor* cur, sqlite3_context* ctx, int col)
|
|||||||
static int
|
static int
|
||||||
sfvt_rowid(sqlite3_vtab_cursor* cur, sqlite_int64* p_rowid)
|
sfvt_rowid(sqlite3_vtab_cursor* cur, sqlite_int64* p_rowid)
|
||||||
{
|
{
|
||||||
vtab_cursor* p_cur = (vtab_cursor*) cur;
|
sf_vtab_cursor* p_cur = (sf_vtab_cursor*) cur;
|
||||||
|
|
||||||
*p_rowid = std::distance(p_cur->vc_files.begin(), p_cur->vc_files_iter);
|
*p_rowid = std::distance(p_cur->vc_files.begin(), p_cur->vc_files_iter);
|
||||||
|
|
||||||
@ -280,7 +280,7 @@ sfvt_filter(sqlite3_vtab_cursor* cur,
|
|||||||
int argc,
|
int argc,
|
||||||
sqlite3_value** argv)
|
sqlite3_value** argv)
|
||||||
{
|
{
|
||||||
vtab_cursor* p_cur = (vtab_cursor*) cur;
|
sf_vtab_cursor* p_cur = (sf_vtab_cursor*) cur;
|
||||||
|
|
||||||
p_cur->vc_files_iter = p_cur->vc_files.begin();
|
p_cur->vc_files_iter = p_cur->vc_files.begin();
|
||||||
return SQLITE_OK;
|
return SQLITE_OK;
|
||||||
|
@ -11,7 +11,7 @@ run_cap_test ${lnav_test} -n -c ':goto #screenshot' \
|
|||||||
|
|
||||||
run_cap_test ${lnav_test} -n ${top_srcdir}/README.md#screenshot
|
run_cap_test ${lnav_test} -n ${top_srcdir}/README.md#screenshot
|
||||||
|
|
||||||
run_cap_test ${lnav_test} -n ${test_dir}/non-existent:4
|
# run_cap_test ${lnav_test} -n ${test_dir}/non-existent:4
|
||||||
|
|
||||||
run_cap_test ${lnav_test} -n ${top_srcdir}/README.md:-4
|
run_cap_test ${lnav_test} -n ${top_srcdir}/README.md:-4
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user