diff --git a/board/common/rootfs/usr/bin/dir b/board/common/rootfs/usr/bin/dir
new file mode 100755
index 00000000..4d8fc7b7
--- /dev/null
+++ b/board/common/rootfs/usr/bin/dir
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+dir()
+{
+ path=$1
+
+ if [ -z "$COLUMS" ]; then
+ TTY=$(resize)
+ eval "$TTY"
+ fi
+
+ printf "\033[7m%-*s\033[0m\n" "$COLUMNS" "$path directory"
+ if [ -d "$path" ]; then
+ ls -p "$path/"
+ else
+ echo "Directory $path does not exist."
+ fi
+ echo
+}
+
+if [ -d "$1" ]; then
+ dir "$1"
+else
+ dir "$HOME"
+ dir "/cfg"
+ dir "/log"
+fi
diff --git a/src/klish-plugin-infix/src/infix.c b/src/klish-plugin-infix/src/infix.c
index 1b17db16..57e02327 100644
--- a/src/klish-plugin-infix/src/infix.c
+++ b/src/klish-plugin-infix/src/infix.c
@@ -300,19 +300,6 @@ done:
return files("/cfg", ".cfg");
}
-int infix_dir(kcontext_t *ctx)
-{
- cd_home(ctx);
-
- fputs("\e[7mHome directory \e[0m\n", stderr);
- system("ls --color=always -p >&2");
-
- fputs("\n\e[7m/cfg directory \e[0m\n", stderr);
- system("ls --color=always -p /cfg >&2");
-
- return 0;
-}
-
int infix_erase(kcontext_t *ctx)
{
kpargv_t *pargv = kcontext_pargv(ctx);
@@ -760,7 +747,6 @@ int kplugin_infix_init(kcontext_t *ctx)
kplugin_add_syms(plugin, ksym_new("copy", infix_copy));
kplugin_add_syms(plugin, ksym_new("commit", infix_commit));
kplugin_add_syms(plugin, ksym_new("datastore", infix_datastore));
- kplugin_add_syms(plugin, ksym_new("dir", infix_dir));
kplugin_add_syms(plugin, ksym_new("erase", infix_erase));
kplugin_add_syms(plugin, ksym_new("files", infix_files));
kplugin_add_syms(plugin, ksym_new("ifaces", infix_ifaces));
diff --git a/src/klish-plugin-infix/xml/infix.xml b/src/klish-plugin-infix/xml/infix.xml
index 4ee150a1..9cf3601e 100644
--- a/src/klish-plugin-infix/xml/infix.xml
+++ b/src/klish-plugin-infix/xml/infix.xml
@@ -172,8 +172,13 @@
-
-
+
+
+
+
+
+ dir $KLISH_PARAM_path
+
@@ -388,11 +393,19 @@
- file=${KLISH_PARAM_fn:-syslog}
+ file=/log/${KLISH_PARAM_fn:-syslog}
+ case "$file" in
+ *.gz)
+ cmd=zcat
+ ;;
+ *)
+ cmd=cat
+ ;;
+ esac
if [ -n "$KLISH_PARAM_lines" ]; then
- tail -n $KLISH_PARAM_lines /log/$file
+ $cmd "$file" | tail -n $KLISH_PARAM_lines
else
- cat /log/$file
+ $cmd "$file"
fi