[demo] build/deploy stuff for ssh-based demo

fix structure name clash
pull/1031/head
Timothy Stack 2 years ago
parent 4b307b5b4f
commit 220317eb16

@ -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"]

@ -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;
};
struct vtab_cursor {
struct env_vtab_cursor {
sqlite3_vtab_cursor base;
char** env_cursor;
};
@ -128,7 +128,7 @@ vt_open(sqlite3_vtab* p_svt, sqlite3_vtab_cursor** pp_cursor)
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) {
return SQLITE_NOMEM;
@ -145,7 +145,7 @@ vt_open(sqlite3_vtab* p_svt, sqlite3_vtab_cursor** pp_cursor)
static int
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. */
delete p_cur;
@ -156,7 +156,7 @@ vt_close(sqlite3_vtab_cursor* cur)
static int
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;
}
@ -164,7 +164,7 @@ vt_eof(sqlite3_vtab_cursor* cur)
static int
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) {
vc->env_cursor += 1;
@ -176,7 +176,7 @@ vt_next(sqlite3_vtab_cursor* cur)
static int
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], '=');
switch (col) {
@ -197,7 +197,7 @@ vt_column(sqlite3_vtab_cursor* cur, sqlite3_context* ctx, int col)
static int
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];

@ -61,7 +61,7 @@ struct static_file_info {
ghc::filesystem::path sfi_path;
};
struct vtab_cursor {
struct sf_vtab_cursor {
sqlite3_vtab_cursor base;
std::map<std::string, static_file_info>::iterator vc_files_iter;
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 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;
std::error_code ec;
@ -165,7 +165,7 @@ sfvt_open(sqlite3_vtab* p_svt, sqlite3_vtab_cursor** pp_cursor)
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) {
return SQLITE_NOMEM;
@ -190,7 +190,7 @@ sfvt_open(sqlite3_vtab* p_svt, sqlite3_vtab_cursor** pp_cursor)
static int
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();
/* Free cursor struct. */
@ -202,7 +202,7 @@ sfvt_close(sqlite3_vtab_cursor* cur)
static int
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();
}
@ -210,7 +210,7 @@ sfvt_eof(sqlite3_vtab_cursor* cur)
static int
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()) {
++vc->vc_files_iter;
@ -222,7 +222,7 @@ sfvt_next(sqlite3_vtab_cursor* cur)
static int
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) {
case 0:
@ -260,7 +260,7 @@ sfvt_column(sqlite3_vtab_cursor* cur, sqlite3_context* ctx, int col)
static int
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);
@ -280,7 +280,7 @@ sfvt_filter(sqlite3_vtab_cursor* cur,
int argc,
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();
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 ${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

Loading…
Cancel
Save