Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37748775
en ru br
Репозитории ALT
S:2.8.0-alt2
5.1: 2.0.5-alt4
4.1: 2.0.5-alt3
4.0: 2.0.5-alt2
3.0: 2.0.2-alt1
www.altlinux.org/Changes

Группа :: Система/Серверы
Пакет: nut

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: nut-2.0.5-alt-upsdrvctl-list.patch
Скачать


--- nut-2.0.5/drivers/upsdrvctl.c.alt-upsdrvctl-list	2007-07-27 13:20:47 +0400
+++ nut-2.0.5/drivers/upsdrvctl.c	2007-07-27 13:29:30 +0400
@@ -276,16 +276,33 @@ static void start_driver(const ups_t *up
 	forkexec(dfn, argv, ups);
 }
 
+static void list_driver(const ups_t *ups)
+{
+	char	dfn[SMALLBUF];
+	int	ret;
+	struct	stat	fs;
+
+	snprintf(dfn, sizeof(dfn), "%s/%s", driverpath, ups->driver);
+	ret = stat(dfn, &fs);
+
+	if (ret < 0)
+		upslogx(LOG_ERR, "stat: %s: %m", dfn);
+	else
+		puts(dfn);
+}
+
 static void help(const char *progname)
 {
 	printf("Starts and stops UPS drivers via ups.conf.\n\n");
-	printf("usage: %s [OPTIONS] (start | stop | shutdown) [<ups>]\n\n", progname);
+	printf("usage: %s [OPTIONS] (list | start | stop | shutdown) [<ups>]\n\n", progname);
 
 	printf("  -h			display this help\n");
 	printf("  -r <path>		drivers will chroot to <path>\n");
 	printf("  -t			testing mode - prints actions without doing them\n");
 	printf("  -u <user>		drivers started will switch from root to <user>\n");
 	printf("  -D            	raise debugging level\n");
+	printf("  list			list all UPS drivers in ups.conf\n");
+	printf("  list <ups>		only list driver for UPS <ups>\n");
 	printf("  start			start all UPS drivers in ups.conf\n");
 	printf("  start	<ups>		only start driver for UPS <ups>\n");
 	printf("  stop			stop all UPS drivers in ups.conf\n");
@@ -448,6 +465,9 @@ int main(int argc, char **argv)
 			nut_debug_level = 2;
 	}
 
+	if (!strcmp(argv[0], "list"))
+		command = &list_driver;
+
 	if (!strcmp(argv[0], "start"))
 		command = &start_driver;
 
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin