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