RFC - Program to schedule download of winetest.exe
I have hacked together a little program to download winetest.exe and run it every 24h. Here is the URL: http://vmlinux.org/jakov/Wine/testloader/ There are more binaries and stuff there too. I know this is not a windows service, but at least it is something. Keep this console aplication open and it will download winetest.exe every 24h, with some randomness, to go easy on the server. .----------------------------------. What the code looks like: #include <string> #include <stdlib.h> #include <stdio.h> #include <time.h> #include <windows.h> #include <io.h> #include <process.h> using namespace std; static void await(int hour) { int right_time = 0; do { time_t now = time(NULL); struct tm comp = *gmtime(&now); if (comp.tm_hour == hour) { Sleep((rand()%60) * 60000); // Introduce randomness right_time = 1; } else { Sleep(10000); } } while(!right_time); } #define WINETESTS "winetests.exe" #define TESTCOPY "testcopy.exe" static void runtest() { SetCurrentDirectory(getenv("TEMP")); _unlink(WINETESTS); system("wget --no-clobber http://vmlinux.org/jakov/Wine/" WINETESTS); // Validate GPG signature for winetest.exe -- TODO // silly wget makes file not executable if (!CopyFile(WINETESTS, TESTCOPY, FALSE)) { printf("Problem with file " WINETESTS "\n"); return; } _unlink(WINETESTS); rename(TESTCOPY, WINETESTS); printf("execl %s returns: %d\n", WINETESTS, _execl(WINETESTS, WINETESTS, NULL)); } int main(int argc, char **argv) { int run_once = 0; if (argc != 2) { printf("Usage:\n%s < hour_of_download | once >\n", argv[0]); return 0; } srand((unsigned int)time(NULL)); if (2 == argc) { if (string(argv[1]) == "once") { run_once = 1; } } if (run_once) { runtest(); return 0; } while (1) { await(atoi(argv[1])); runtest(); } return 0; }
participants (1)
-
Jakob Eriksson