Added Edit command

Command Edit <CONF>  opens file /etc/finit.d/available/<CONF>.conf in
the editor referenced by Linux environment variable $EDITOR
If $EDITOR is not set it will try to open emacs and if emacs is not
found it will try to open the file in vim.

Signed-off-by: Andreas Egeberg <andreas.egeberg@gmail.com>
This commit is contained in:
Andreas Egeberg authored and Andreas Egeberg committed 2021-02-26 10:28:21 +01:00
1 parent fc82f0242c
commit 60d0ca1075
3 files changed
+35 -1

No files matched your search

+31
View File
@@ -27,6 +27,7 @@
#include <fcntl.h> /* Definition of AT_* constants */
#include <glob.h>
#include <stdio.h>
#include <stdlib.h>
#include <lite/lite.h>
#include "util.h"
@@ -199,6 +200,36 @@ int serv_touch(char *arg)
return 0;
}
int serv_edit(char *arg)
{
char corr[40];
char path[256];
if (!arg || !arg[0])
return serv_list(NULL);
if (!strstr(arg, ".conf")) {
snprintf(corr, sizeof(corr), "%s.conf", arg);
arg = corr;
}
pushd(FINIT_RCSD);
if (mkdir("available", 0755) && EEXIST != errno)
err(1, "Failed creating %s/available directory", FINIT_RCSD);
snprintf(path, sizeof(path), "%s/%s", available, arg);
if (!fexist(path))
return serv_list(NULL);
if (systemf("[ -x \"$(command -v sensible-editor)\" ] && sensible-editor %s", path) != 0)
if (systemf("[ -x \"$(command -v editor)\" ] && editor %s", path) != 0)
if (systemf("${VISUAL:-${EDITOR:-$(command -v vi)}} %s", path) != 0)
if (systemf("[ -x \"$(command -v mg)\" ] && mg %s", path) != 0)
systemf("[ -x \"$(command -v vi)\" ] && vi %s", path);
return 0;
}
/**
* Local Variables:
* indent-tabs-mode: t