From 3959a9b22c52e3328e462af419c72a3a0f0814cd Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Thu, 7 Apr 2022 11:54:50 +0100 Subject: [PATCH] uvol: unbreak if LVM is installed but unused Fix and simplify console output, make sure uvol doesn't break in case of LVM being installed but not used. Signed-off-by: Daniel Golle --- utils/uvol/files/lvm.uc | 6 +++--- utils/uvol/files/uvol | 16 +++++++--------- utils/uvol/files/uvol.init | 1 - 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/utils/uvol/files/lvm.uc b/utils/uvol/files/lvm.uc index 36fb37c5fb..c93a50e8e6 100644 --- a/utils/uvol/files/lvm.uc +++ b/utils/uvol/files/lvm.uc @@ -54,7 +54,7 @@ function pvs() { return null; let tmp = lvm("pvs", "-o", "vg_name", "-S", sprintf("\"pv_name=~^/dev/%s.*\$\"", rootdev)); - if (tmp.report.pv) + if (tmp.report.pv[0]) return tmp.report.pv[0].vg_name; else return null; @@ -115,8 +115,8 @@ function getdev(lv) { function lvm_init(ctx) { cursor = ctx.cursor; fs = ctx.fs; -// if (!fs.access(lvm_exec, "x")) -// return false; + if (type(fs.access) == "function" && !fs.access(lvm_exec, "x")) + return false; vg_name = pvs(); if (!vg_name) diff --git a/utils/uvol/files/uvol b/utils/uvol/files/uvol index a4f023ffd7..2e2ea2928b 100644 --- a/utils/uvol/files/uvol +++ b/utils/uvol/files/uvol @@ -23,7 +23,7 @@ commands: status volname return status of volume return code: 0 - volume is ready for use 1 - volume is not ready for use - 2 - volume doesn'y exist + 2 - volume doesn't exist write volname size write to volume from stdin, size in bytes "; @@ -101,21 +101,19 @@ let legacy_output = function(var) { out += "\n"; } } else if (type(var) == "object") { - out += join(" ", values(line)); + out += join(" ", values(var)); + out += "\n"; + } else if (type(var) == "string") { + out += var; out += "\n"; } return out; }; -if (type(backend[cmd]) == "string") { - printf("%s\n", backend[cmd]); -} else if (type(backend[cmd]) == "function") { +if (type(backend[cmd]) == "function") { let ret = backend[cmd](...ARGV); - if (type(ret) == "int") + if (type(ret) == "int") { exit(ret); - - if (type(ret) == "string") { - printf("%s\n", ret); } else { if (json_output) printf("%.J\n", ret); diff --git a/utils/uvol/files/uvol.init b/utils/uvol/files/uvol.init index 98216214fe..d75187368a 100644 --- a/utils/uvol/files/uvol.init +++ b/utils/uvol/files/uvol.init @@ -19,4 +19,3 @@ boot() { service_triggers() { procd_add_raw_trigger "mount.ready" 200 /etc/init.d/uvol start } - -- 2.30.2