А я все оптимизирую рабочее место :)
Для определенных нужд требуется мне, чтобы на удаленном сервере, сразу после моего логина по SSH, выполнялась какая-нить команда. В консольном ssh, в линуксе и в cygwin'е, это делается легко и просто - указанием команды после ssh
ssh user@server.ru "command"Putty же по каким-то причинам так не умеет, почему - для меня загадка. Putty требует создания файла, в котором надо вписать команды, а файлик уже указать ключиком
putty user@server.ru -m fileДумая, как обойти такую незадачу, я хотел писать программу, которая создавала бы временный файл и запускала putty с ним. Потом я вспомнил, что putty же опенсорсный, и захотелось посмотреть, а как же там подключается этот файл с командами, может обмануть его можно. Нашел тут исходники, в них оказался даже проект для VC++ - думаю, а дай попробую изменить :) Открыл, посмотрел. Оказалось, что файлик открывается функцией fopen и читается по одному символу. Добавил рядом обработку ещё одного ключика -c, чтобы брал прямо команду из командной строки. Всего ничего
if (!strcmp(p, "-c")) {начиная со строки 339 файла cmdline.c
RETURN(2);
UNAVAILABLE_IN(TOOLTYPE_FILETRANSFER | TOOLTYPE_NONNETWORK);
SAVEABLE(0);
cfg->remote_cmd_ptr = value;
}
Признаюсь, я сильно удивился, когда проект собрался сразу и без ошибок. Какие бы исходники я до этого ни качал - сразу ничего не собиралось. Пожал для полного счастья upx'ом - exe'шник стал занимать почти в два раза меньше, чем оригинальный putty, ну и заменил оригинальный своим форком :)
Теперь могу так
putty user@server.ru -c "command"и это даже работает :)
ЗЫ Вообще я до этого пользовался kitty - это форк putty с добавлением разного функционала. Но исходники kitty собираться отказались, и подумав, я пришел к выводу, что нафик мне этот kitty нужен.
ЗЗЫ Да, это не true windows way, но что делать :)seguir ->