Отправка решения на конкурс Accelerate 2012 одним кликом с помощью PowerShell

Прежде всего хочу сказать спасибо организаторам конкурса Accelerate 2012 за замечательный makefile, который, помимо прочего, умеет отправлять решение одной командой из консоли. Однако я сижу на windows и не могу воспрользоваться всеми прелестями bash.

Поэтому было принято решение самостоятельно сделать такую отправку. В качестве ограничения я ввел себе правило использовать только то, что уже есть в системе. Раньше стандартный cmd меня вполне устраивал, но выгружать файлы он не позволяет. Так я открыл для себя PowerShell.

Посмотреть, что получилось / скачать (после скачивания открываем свойства файла и делаем “unblock”)

Как пользоваться:
- заменить {SECRET_ID} на свой ключ
- если у вас стоит не 7zip, придется изменить путь до архиватора. Возможно нужно будет также поменять параметры его вызова
- помещаем скрипт в папку с исходниками, там же должен лежать Makefile
- кликаем на скрипте правой кнопкой и выбираем Run with PowerShell



Коротко для тех, кто вообще не знаком: PowerShell - это оболочка и язык сценариев. Так как он построен на основе .NET, то с помощью него можно сделать практически все (такие скрипты можно даже внедрять в приложения). Подробнее о нем и его истории можно прочитать в википедии.

Создавать скрипт PowerShell (файл с расширением ps1) можно в любом текстовом редакторе. Но я решил поискать удобств и наткнулся на PowerGUI в котором есть автодополнение и “debug”. Вот хороший список других IDE для PowerShell.

Единственный вопрос, который я не смог решить - как создавать zip архив. Несмотря на то, что работа с архивами встроена в систему, удобной работы с ними я не нашел и воспользовался 7zip.

В результате вы должны увидеть что-то подобное:



Внимание

Очень вероятно, что в PowerShell у вас стоят настройки безопасности по умолчанию. Они позволяют пользоваться консолью, но не дают запускать неподписанные файлы скриптов. Для исправления этого запускаем PowerShell (Win+R, powershell) и вводим Set-ExecutionPolicy RemoteSigned, что означает, что сторонние скрипты должны быть подписаны, а локальным мы доверяем. Закрываем PowerShell.

Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.