--- embedtools/src/Attic/updimg.c 2009/11/13 13:55:28 1.1.2.1 +++ embedtools/src/Attic/updimg.c 2009/11/13 23:19:23 1.1.2.3 @@ -1,9 +1,9 @@ #include "global.h" +#include "upd.h" sl_config cfg; int Verbose, Mode; -char szImg[MAXPATHLEN], szDir[MAXPATHLEN]; extern char compiled[], compiledby[], compilehost[]; @@ -16,6 +16,7 @@ static void Usage() "\t-a\t\tMake image active for next boot\n" "\t-i\t\tInstall new image\n" "\t-r\t\tRollback old backuped image\n" + "\t-t \tExport for TFTP download\n" "\t-b\t\tBackup image\n" "\t-d\t\tClean backuped image\n" "\n", compiled, compiledby, compilehost); @@ -25,16 +26,17 @@ static void Usage() int main(int argc, char **argv) { - char ch; + char ch, szImg[MAXPATHLEN], szTFTP[MAXPATHLEN]; int mode; - while ((ch = getopt(argc, argv, "hvdbtair")) != -1) + while ((ch = getopt(argc, argv, "hvdbt:air")) != -1) switch (ch) { case 'a': Mode |= 0x1; break; case 't': Mode |= 0x8; + strlcpy(szTFTP, optarg, MAXPATHLEN); break; case 'r': if (Mode & 0x2) { @@ -84,33 +86,33 @@ int main(int argc, char **argv) Usage(); return 1; } else - strlcpy(szImg, *argv, MAXPATHLEN); + basename_r(*argv, szImg); if (argc > 1) { - strlcpy(szDir, argv[1], MAXPATHLEN); - chdir(szDir); - VERB(5) printf("Info(5):: Change to dir %s\n", szDir); + chdir(argv[1]); + VERB(5) printf("Info(5):: Change to dir %s\n", argv[1]); } openlog("updimg", LOG_CONS, 0); + for (mode = 0x20; mode; mode >>= 1) switch (Mode & mode) { case 0x1: - Activate(); + Activate(szImg); break; case 0x2: Install(); break; case 0x4: - Rollback(); + Rollback(szImg); break; case 0x8: - tFTP(); + tFTP(szImg, szTFTP); break; case 0x10: - Backup(); + Backup(szImg, NULL); break; case 0x20: - Clean(); + Clean(szImg); break; }