From 369b30f0ca8b1874ae5bcfad950d14911879dc08 Mon Sep 17 00:00:00 2001 From: NPScript Date: Fri, 14 Jan 2022 14:07:15 +0100 Subject: add install and run command --- Makefile | 2 ++ luis.c | 27 ++++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 996a79f..454bd52 100644 --- a/Makefile +++ b/Makefile @@ -20,3 +20,5 @@ luis: ${OBJ} clean: rm ${OBJ} luis +install: + install luis /usr/local/bin/ diff --git a/luis.c b/luis.c index 48841a7..803210b 100644 --- a/luis.c +++ b/luis.c @@ -25,6 +25,7 @@ void enter_parent(); void enter_directory(); void help(); void print_preview(Window * win); +void run_cmd(); magic_t magic_cookie; @@ -32,6 +33,9 @@ int (*current_filter)(const struct dirent *); int selected_item = 0; char current_path[PATH_MAX] = {0}; +Window mainwin; +Window preview; + #include "config.h" int filter_hidden(const struct dirent * e) { @@ -71,7 +75,7 @@ char * readable_size(long size, char * dest) { ++n; } - sprintf(dest, "%d %s", size, SUNIT[n]); + sprintf(dest, "%ld %s", size, SUNIT[n]); return dest; } @@ -213,6 +217,24 @@ void help() { while (getch() != 'c'); } +void run_cmd() { + printfxy(1, 1, "%*s", get_term_width(), ""); + printfxy(1, 1, "command: "); + char run[BUFSIZ] = "cd "; + char command[BUFSIZ] = "cd "; + + strcat(run, current_path); + strcat(run, " && "); + + showcursor(1); + showecho(1); + fgets(command, BUFSIZ, stdin); + showcursor(0); + showecho(0); + + system(strcat(run, command)); +} + void print_preview(Window * win) { struct stat selstat; char filepath[2048]; @@ -259,8 +281,6 @@ void print_preview(Window * win) { } int main(int argc, char ** argv) { - Window mainwin; - Window preview; mainwin.x = 1; mainwin.y = 2; @@ -317,6 +337,7 @@ int main(int argc, char ** argv) { case 'l': enter_directory(); break; case 'h': enter_parent(); break; case 'o': enter_directory(); break; + case 'c': run_cmd(); break; case '?': help(); break; default: break; } -- cgit v1.2.3-70-g09d2