1/* 2 Copyright (c) 2009 Frank Lahm <franklahm@gmail.com> 3 4 This program is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13*/ 14 15#ifdef HAVE_CONFIG_H 16#include "config.h" 17#endif /* HAVE_CONFIG_H */ 18 19#include <unistd.h> 20#include <sys/types.h> 21#include <stdlib.h> 22#include <stdio.h> 23#include <stdarg.h> 24#include <limits.h> 25#include <signal.h> 26#include <string.h> 27#include <errno.h> 28 29#include <atalk/cnid.h> 30#include <atalk/logger.h> 31#include <atalk/util.h> 32#include <atalk/netatalk_conf.h> 33 34#include "ad.h" 35 36static void usage_main(void) 37{ 38 printf("Usage: ad ls|cp|rm|mv|set|find [file|dir, ...]\n"); 39 printf(" ad -v|--version\n"); 40} 41 42static void show_version(void) 43{ 44 printf("ad (Netatalk %s)\n", VERSION); 45} 46 47int main(int argc, char **argv) 48{ 49 AFPObj obj = { 0 }; 50 51 if (argc < 2) { 52 usage_main(); 53 return 1; 54 } 55 56 if (afp_config_parse(&obj, "ad") != 0) 57 return 1; 58 59 setuplog("default:note", "/dev/tty"); 60 61 if (load_volumes(&obj) != 0) 62 return 1; 63 64 if (STRCMP(argv[1], ==, "ls")) 65 return ad_ls(argc - 1, argv + 1, &obj); 66 else if (STRCMP(argv[1], ==, "cp")) 67 return ad_cp(argc - 1, argv + 1, &obj); 68 else if (STRCMP(argv[1], ==, "rm")) 69 return ad_rm(argc - 1, argv + 1, &obj); 70 else if (STRCMP(argv[1], ==, "mv")) 71 return ad_mv(argc, argv, &obj); 72 else if (STRCMP(argv[1], ==, "set")) 73 return ad_set(argc - 1, argv + 1, &obj); 74 else if (STRCMP(argv[1], ==, "find")) 75 return ad_find(argc, argv, &obj); 76 else if (STRCMP(argv[1], ==, "-v")) { 77 show_version(); 78 return 1; 79 } 80 else if (STRCMP(argv[1], ==, "--version")) { 81 show_version(); 82 return 1; 83 } 84 else { 85 usage_main(); 86 return 1; 87 } 88 89 return 0; 90} 91