Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.87 KB | None | 0 0
  1. #include <unistd.h>
  2. #include <ncurses.h>
  3. #include <sys/utsname.h>
  4. #include <string.h>
  5. #include <locale.h>
  6. #include <stdio.h>
  7. #include <ctype.h>
  8. #include <stdlib.h>
  9. #include <getopt.h>
  10.  
  11.  
  12.  
  13. #include <sys/types.h>
  14. #include <sys/socket.h>
  15. #include <sys/ioctl.h>
  16. #include <netinet/in.h>
  17. #include <net/if.h>
  18. #include <arpa/inet.h>
  19.  
  20.  
  21. #define VERSION 1.07
  22. #define MAXCHAR 1000
  23.  
  24.  
  25.  
  26. int main(int argc, char* argv[])
  27. {
  28. FILE *fp;
  29. char str[MAXCHAR];
  30. // fake rootfs version path
  31. char* filename = "/etc/tmp/version.txt";
  32.  
  33. WINDOW *vin;
  34.  
  35. initscr();
  36. start_color();
  37.  
  38.  
  39.  
  40.  
  41. init_pair(1, COLOR_WHITE, COLOR_BLACK);
  42. init_pair(2, COLOR_WHITE, COLOR_RED);
  43. // White background if needed
  44. init_pair(3, COLOR_WHITE, COLOR_WHITE);
  45.  
  46. int Rpi;
  47. vin = newwin(0, 0, 0, 0);
  48. struct utsname unameData;
  49. uname(&unameData);
  50.  
  51. //Get rootfs version
  52. fp = fopen(filename, "r");
  53. if (fp == NULL){
  54. printf("Could not open file %s",filename);
  55. return 1;
  56. }
  57. while (fgets(str, MAXCHAR, fp) != NULL)
  58.  
  59. fclose(fp);
  60.  
  61. //GET IP
  62.  
  63. int fd;
  64. struct ifreq ifr;
  65.  
  66. fd = socket(AF_INET, SOCK_DGRAM, 0);
  67.  
  68. /* I want IP address attached to "eth0" */
  69. strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1);
  70.  
  71. ioctl(fd, SIOCGIFADDR, &ifr);
  72.  
  73. close(fd);
  74.  
  75. for (int i = 0;; i++) {
  76.  
  77. //wbkgd(vin, COLOR_PAIR(3));
  78.  
  79. wattron(vin, COLOR_PAIR(1));
  80. wmove(vin, 0, 0);
  81. wprintw(vin, "RAUC STATUS :");
  82.  
  83. wattron(vin, COLOR_PAIR(1));
  84. wmove(vin, 0, 75);
  85. wprintw(vin, "DEMO SRWT ");
  86.  
  87.  
  88.  
  89. while ((Rpi = getopt(argc , argv, "abcd")) != -1)
  90. switch (Rpi) {
  91. wattron(vin, COLOR_PAIR(1));
  92.  
  93. case 'a':
  94.  
  95. wmove(vin, 3, 15);
  96. wprintw(vin, " A\n");
  97. wmove(vin, 4, 15);
  98. wprintw(vin, " AAA\n");
  99. wmove(vin, 5, 15);
  100. wprintw(vin, " A:::A\n");
  101. wmove(vin, 6, 15);
  102. wprintw(vin, " A:::::A\n");
  103. wmove(vin, 7, 15);
  104. wprintw(vin, " A:::::::A\n");
  105. wmove(vin, 8, 15);
  106. wprintw(vin, " A:::::::::A\n");
  107. wmove(vin, 9, 15);
  108. wprintw(vin, " A:::::A:::::A\n");
  109. wmove(vin, 10, 15);
  110. wprintw(vin, " A:::::A A:::::A\n");
  111. wmove(vin, 11, 15);
  112. wprintw(vin, " A:::::A A:::::A\n");
  113. wmove(vin, 12, 15);
  114. wprintw(vin, " A:::::A A:::::A\n");
  115. wmove(vin, 13, 15);
  116. wprintw(vin, " A:::::AAAAAAAAA:::::A\n");
  117. wmove(vin, 14, 15);
  118. wprintw(vin, " A:::::::::::::::::::::A\n");
  119. wmove(vin, 15, 15);
  120. wprintw(vin, " A:::::AAAAAAAAAAAAA:::::A\n");
  121. wmove(vin, 16, 15);
  122. wprintw(vin, " A:::::A A:::::A\n");
  123. wmove(vin, 17, 15);
  124. wprintw(vin, " A:::::A A:::::A\n");
  125. wmove(vin, 18, 15);
  126. wprintw(vin, " A:::::A A:::::A\n");
  127. wmove(vin, 19, 15);
  128. wprintw(vin, " AAAAAAA AAAAAAA\n");
  129. break;
  130.  
  131. case 'b':
  132. wmove(vin, 3, 15);
  133. wprintw(vin, " \n");
  134. wmove(vin, 4, 15);
  135. wprintw(vin, " BBBBBBBBBBBBBBBBB \n");
  136. wmove(vin, 5, 15);
  137. wprintw(vin, " B::::::::::::::::B \n");
  138. wmove(vin, 6, 15);
  139. wprintw(vin, " B::::::BBBBBB:::::B \n");
  140. wmove(vin, 7, 15);
  141. wprintw(vin, " BB:::::B B:::::B\n");
  142. wmove(vin, 8, 15);
  143. wprintw(vin, " B::::B B:::::B\n");
  144. wmove(vin, 9, 15);
  145. wprintw(vin, " B::::B B:::::B\n");
  146. wmove(vin, 10, 15);
  147. wprintw(vin, " B::::BBBBBB:::::B \n");
  148. wmove(vin, 11, 15);
  149. wprintw(vin, " B:::::::::::::BB \n");
  150. wmove(vin, 12, 15);
  151. wprintw(vin, " B::::BBBBBB:::::B \n");
  152. wmove(vin, 13, 15);
  153. wprintw(vin, " B::::B B:::::B\n");
  154. wmove(vin, 14, 15);
  155. wprintw(vin, " B::::B B:::::B\n");
  156. wmove(vin, 15, 15);
  157. wprintw(vin, " B::::B B:::::B\n");
  158. wmove(vin, 16, 15);
  159. wprintw(vin, " BB:::::BBBBBB::::::B\n");
  160. wmove(vin, 17, 15);
  161. wprintw(vin, " B:::::::::::::::::B \n");
  162. wmove(vin, 18, 15);
  163. wprintw(vin, " B::::::::::::::::B \n");
  164. wmove(vin, 19, 15);
  165. wprintw(vin, " BBBBBBBBBBBBBBBBB \n");
  166.  
  167. break;
  168.  
  169. case 'c':
  170. wmove(vin, 3, 15);
  171. wprintw(vin, " \n" );
  172. wmove(vin, 4, 15);
  173. wprintw(vin, " CCCCCCCCCCCCC \n");
  174. wmove(vin, 5, 15);
  175. wprintw(vin, " CCC::::::::::::C\n");
  176. wmove(vin, 6, 15);
  177. wprintw(vin, " CC:::::::::::::::C\n");
  178. wmove(vin, 7, 15);
  179. wprintw(vin, " C:::::CCCCCCCC::::C\n");
  180. wmove(vin, 8, 15);
  181. wprintw(vin, " C:::::C CCCCCC\n");
  182. wmove(vin, 9, 15);
  183. wprintw(vin, " C:::::C \n");
  184. wmove(vin, 10, 15);
  185. wprintw(vin, " C:::::C \n");
  186. wmove(vin, 11, 15);
  187. wprintw(vin, " C:::::C \n");
  188. wmove(vin, 12, 15);
  189. wprintw(vin, " C:::::C \n");
  190. wmove(vin, 13, 15);
  191. wprintw(vin, " C:::::C \n");
  192. wmove(vin, 14, 15);
  193. wprintw(vin, " C:::::C \n");
  194. wmove(vin, 15, 15);
  195. wprintw(vin, " C:::::C CCCCCC\n");
  196. wmove(vin, 16, 15);
  197. wprintw(vin, " C:::::CCCCCCCC::::C\n");
  198. wmove(vin, 17, 15);
  199. wprintw(vin, " CC:::::::::::::::C\n");
  200. wmove(vin, 18, 15);
  201. wprintw(vin, " CCC::::::::::::C\n");
  202. wmove(vin, 19, 15);
  203. wprintw(vin, " CCCCCCCCCCCCC\n");
  204.  
  205.  
  206. break;
  207.  
  208. case 'd':
  209. wmove(vin, 3, 15);
  210. wprintw(vin, " \n" );
  211. wmove(vin, 4, 15);
  212. wprintw(vin, " DDDDDDDDDDDDD \n");
  213. wmove(vin, 5, 15);
  214. wprintw(vin, " D::::::::::::DDD \n");
  215. wmove(vin, 6, 15);
  216. wprintw(vin, " D:::::::::::::::DD \n");
  217. wmove(vin, 7, 15);
  218. wprintw(vin, " DDD:::::DDDDD:::::D \n");
  219. wmove(vin, 8, 15);
  220. wprintw(vin, " D:::::D D:::::D \n");
  221. wmove(vin, 9, 15);
  222. wprintw(vin, " D:::::D D:::::D\n");
  223. wmove(vin, 10, 15);
  224. wprintw(vin, " D:::::D D:::::D\n");
  225. wmove(vin, 11, 15);
  226. wprintw(vin, " D:::::D D:::::D\n");
  227. wmove(vin, 12, 15);
  228. wprintw(vin, " D:::::D D:::::D\n");
  229. wmove(vin, 13, 15);
  230. wprintw(vin, " D:::::D D:::::D\n");
  231. wmove(vin, 14, 15);
  232. wprintw(vin, " D:::::D D:::::D\n");
  233. wmove(vin, 15, 15);
  234. wprintw(vin, " D:::::D D:::::D \n");
  235. wmove(vin, 16, 15);
  236. wprintw(vin, " DDD:::::DDDDD:::::D \n");
  237. wmove(vin, 17, 15);
  238. wprintw(vin, " D:::::::::::::::DD \n");
  239. wmove(vin, 18, 15);
  240. wprintw(vin, " D::::::::::::DDD \n");
  241. wmove(vin, 19, 15);
  242. wprintw(vin, " DDDDDDDDDDDDD \n");
  243.  
  244.  
  245. break;
  246.  
  247. default:
  248. wprintw(vin, "BAD PARAMETER");
  249. break;
  250.  
  251. }
  252.  
  253.  
  254. wattron(vin, COLOR_PAIR(1));
  255. wmove(vin, 9, 65);
  256. wprintw(vin, "Soft version : %.2f", VERSION);
  257.  
  258. wattron(vin, COLOR_PAIR(1));
  259. wmove(vin, 13, 65);
  260. wprintw(vin, "Rootfs version : %s", str);
  261.  
  262. wattron(vin, COLOR_PAIR(1));
  263. wmove(vin, 17, 65);
  264. wprintw(vin, "Kernel version : %s\n", unameData.release);
  265.  
  266. wattron(vin, COLOR_PAIR(1));
  267. wmove(vin, 21, 65);
  268. wprintw(vin,"IP : %s", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
  269.  
  270.  
  271.  
  272.  
  273.  
  274. wrefresh(vin);
  275. usleep(100);
  276. }
  277.  
  278. getch();
  279. delwin(vin);
  280. endwin();
  281.  
  282. return 0;
  283. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement