commit - b084f13e9acf971b9c1336617825d5a42497acd4
commit + 5cde236501e1894e0ee08cbfd211a08fee7b6691
blob - 4fc21ce0e5798d87f88459f89e7dc43aed8e89bc
blob + c8604deec3a65def085a7ebc6690b305e6170c54
--- rover.c
+++ rover.c
const char *key;
DIR *d;
EditStat edit_stat;
+ const char *save_cwd_file = NULL;
- if (argc == 2) {
+ if (argc >= 2) {
if (!strcmp(argv[1], "-v") || !strcmp(argv[1], "--version")) {
printf("rover %s\n", RV_VERSION);
return 0;
"Rover homepage: <https://github.com/lecram/rover>.\n"
);
return 0;
+ } else if (argc > 2 && !strcmp(argv[1], "--save-cwd")) {
+ --argc; ++argv;
+ save_cwd_file = argv[1];
+ --argc; ++argv;
}
}
init_term();
free_rows(&rover.rows, rover.nfiles);
free_marks(&rover.marks);
delwin(rover.window);
+ if (save_cwd_file != NULL) {
+ FILE *fd = fopen(save_cwd_file, "w");
+ fputs(rover.cwd[rover.tab], fd);
+ fclose(fd);
+ }
return 0;
}
blob - /dev/null
blob + 33b4107fc6cf5c50dbb20b86f65566d4f5fe77f6 (mode 755)
--- /dev/null
+++ rover.sh
+#!/bin/sh
+
+# Based on ranger launcher.
+#
+# Usage: ". ./rover.sh [/path/to/rover]"
+
+tempfile="$(mktemp)"
+rover="${1:-rover}"
+test -z "$1" || shift
+"$rover" --save-cwd "$tempfile" "${@:-$(pwd)}"
+returnvalue=$?
+test -f "$tempfile" &&
+if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then
+ cd "$(cat "$tempfile")"
+fi
+rm -f -- "$tempfile"
+return $returnvalue