aboutsummaryrefslogtreecommitdiff
path: root/src/dir_monitor.c
diff options
context:
space:
mode:
authorThorsten Töpper <atsutane@freethoughts.de>2025-07-26 04:08:03 +0200
committerThorsten Töpper <atsutane@freethoughts.de>2025-07-26 04:13:53 +0200
commit387ab16a00b2427d0459ea13fff83f13a0919a11 (patch)
treecf8a6afb557133a43bcee22a715717df349ea33a /src/dir_monitor.c
parentb44b44fce5d6c5b436b6d1e89726fd6190698811 (diff)
downloaddir_monitor-387ab16a00b2427d0459ea13fff83f13a0919a11.tar.gz
dir_monitor-387ab16a00b2427d0459ea13fff83f13a0919a11.tar.bz2
dir_monitor: by default open cwd of calling process
Also fix small memory leak in error case when attempting to collect data. Irrelevant as this leads to program exit anyways.
Diffstat (limited to 'src/dir_monitor.c')
-rw-r--r--src/dir_monitor.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/dir_monitor.c b/src/dir_monitor.c
index 46409cd..935aa74 100644
--- a/src/dir_monitor.c
+++ b/src/dir_monitor.c
@@ -19,17 +19,26 @@ int main(int argc, char **argv) {
struct list_head *list = NULL;
int path_index = 1;
- if (argc < 2) {
- usage(argv[0]);
- return EXIT_FAILURE;
- }
- path_index = parse_arguments(argc, argv);
- if (path_index == argc) {
- usage(argv[0]);
- return EXIT_FAILURE;
+ if (argc > 2) {
+ path_index = parse_arguments(argc, argv);
+ if (path_index == argc) {
+ usage(argv[0]);
+ return EXIT_FAILURE;
+ }
+ list = get_data_from_directory(argv[path_index]);
+ } else if (argc == 2) {
+ if (argv[1][0] == '-') {
+ fputc('\n', stderr);
+ LOGERR("WARNING: if '%s' is a valid path use a prefix like ./\n\n",
+ argv[1]);
+ usage(argv[0]);
+ return EXIT_FAILURE;
+ }
+ list = get_data_from_directory(argv[1]);
+ } else {
+ list = get_data_from_directory(".");
}
- list = get_data_from_directory(argv[path_index]);
if (option_format_string == NULL) {
print_list(list);
} else {