Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <unistd.h>
- #include <ncurses.h>
- #include <sys/utsname.h>
- #include <string.h>
- #include <locale.h>
- #include <stdio.h>
- #include <ctype.h>
- #include <stdlib.h>
- #include <getopt.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/ioctl.h>
- #include <netinet/in.h>
- #include <net/if.h>
- #include <arpa/inet.h>
- #define VERSION 1.07
- #define MAXCHAR 1000
- int main(int argc, char* argv[])
- {
- FILE *fp;
- char str[MAXCHAR];
- // fake rootfs version path
- char* filename = "/etc/tmp/version.txt";
- WINDOW *vin;
- initscr();
- start_color();
- init_pair(1, COLOR_WHITE, COLOR_BLACK);
- init_pair(2, COLOR_WHITE, COLOR_RED);
- // White background if needed
- init_pair(3, COLOR_WHITE, COLOR_WHITE);
- int Rpi;
- vin = newwin(0, 0, 0, 0);
- struct utsname unameData;
- uname(&unameData);
- //Get rootfs version
- fp = fopen(filename, "r");
- if (fp == NULL){
- printf("Could not open file %s",filename);
- return 1;
- }
- while (fgets(str, MAXCHAR, fp) != NULL)
- fclose(fp);
- //GET IP
- int fd;
- struct ifreq ifr;
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- /* I want IP address attached to "eth0" */
- strncpy(ifr.ifr_name, "eth0", IFNAMSIZ-1);
- ioctl(fd, SIOCGIFADDR, &ifr);
- close(fd);
- for (int i = 0;; i++) {
- //wbkgd(vin, COLOR_PAIR(3));
- wattron(vin, COLOR_PAIR(1));
- wmove(vin, 0, 0);
- wprintw(vin, "RAUC STATUS :");
- wattron(vin, COLOR_PAIR(1));
- wmove(vin, 0, 75);
- wprintw(vin, "DEMO SRWT ");
- while ((Rpi = getopt(argc , argv, "abcd")) != -1)
- switch (Rpi) {
- wattron(vin, COLOR_PAIR(1));
- case 'a':
- wmove(vin, 3, 15);
- wprintw(vin, " A\n");
- wmove(vin, 4, 15);
- wprintw(vin, " AAA\n");
- wmove(vin, 5, 15);
- wprintw(vin, " A:::A\n");
- wmove(vin, 6, 15);
- wprintw(vin, " A:::::A\n");
- wmove(vin, 7, 15);
- wprintw(vin, " A:::::::A\n");
- wmove(vin, 8, 15);
- wprintw(vin, " A:::::::::A\n");
- wmove(vin, 9, 15);
- wprintw(vin, " A:::::A:::::A\n");
- wmove(vin, 10, 15);
- wprintw(vin, " A:::::A A:::::A\n");
- wmove(vin, 11, 15);
- wprintw(vin, " A:::::A A:::::A\n");
- wmove(vin, 12, 15);
- wprintw(vin, " A:::::A A:::::A\n");
- wmove(vin, 13, 15);
- wprintw(vin, " A:::::AAAAAAAAA:::::A\n");
- wmove(vin, 14, 15);
- wprintw(vin, " A:::::::::::::::::::::A\n");
- wmove(vin, 15, 15);
- wprintw(vin, " A:::::AAAAAAAAAAAAA:::::A\n");
- wmove(vin, 16, 15);
- wprintw(vin, " A:::::A A:::::A\n");
- wmove(vin, 17, 15);
- wprintw(vin, " A:::::A A:::::A\n");
- wmove(vin, 18, 15);
- wprintw(vin, " A:::::A A:::::A\n");
- wmove(vin, 19, 15);
- wprintw(vin, " AAAAAAA AAAAAAA\n");
- break;
- case 'b':
- wmove(vin, 3, 15);
- wprintw(vin, " \n");
- wmove(vin, 4, 15);
- wprintw(vin, " BBBBBBBBBBBBBBBBB \n");
- wmove(vin, 5, 15);
- wprintw(vin, " B::::::::::::::::B \n");
- wmove(vin, 6, 15);
- wprintw(vin, " B::::::BBBBBB:::::B \n");
- wmove(vin, 7, 15);
- wprintw(vin, " BB:::::B B:::::B\n");
- wmove(vin, 8, 15);
- wprintw(vin, " B::::B B:::::B\n");
- wmove(vin, 9, 15);
- wprintw(vin, " B::::B B:::::B\n");
- wmove(vin, 10, 15);
- wprintw(vin, " B::::BBBBBB:::::B \n");
- wmove(vin, 11, 15);
- wprintw(vin, " B:::::::::::::BB \n");
- wmove(vin, 12, 15);
- wprintw(vin, " B::::BBBBBB:::::B \n");
- wmove(vin, 13, 15);
- wprintw(vin, " B::::B B:::::B\n");
- wmove(vin, 14, 15);
- wprintw(vin, " B::::B B:::::B\n");
- wmove(vin, 15, 15);
- wprintw(vin, " B::::B B:::::B\n");
- wmove(vin, 16, 15);
- wprintw(vin, " BB:::::BBBBBB::::::B\n");
- wmove(vin, 17, 15);
- wprintw(vin, " B:::::::::::::::::B \n");
- wmove(vin, 18, 15);
- wprintw(vin, " B::::::::::::::::B \n");
- wmove(vin, 19, 15);
- wprintw(vin, " BBBBBBBBBBBBBBBBB \n");
- break;
- case 'c':
- wmove(vin, 3, 15);
- wprintw(vin, " \n" );
- wmove(vin, 4, 15);
- wprintw(vin, " CCCCCCCCCCCCC \n");
- wmove(vin, 5, 15);
- wprintw(vin, " CCC::::::::::::C\n");
- wmove(vin, 6, 15);
- wprintw(vin, " CC:::::::::::::::C\n");
- wmove(vin, 7, 15);
- wprintw(vin, " C:::::CCCCCCCC::::C\n");
- wmove(vin, 8, 15);
- wprintw(vin, " C:::::C CCCCCC\n");
- wmove(vin, 9, 15);
- wprintw(vin, " C:::::C \n");
- wmove(vin, 10, 15);
- wprintw(vin, " C:::::C \n");
- wmove(vin, 11, 15);
- wprintw(vin, " C:::::C \n");
- wmove(vin, 12, 15);
- wprintw(vin, " C:::::C \n");
- wmove(vin, 13, 15);
- wprintw(vin, " C:::::C \n");
- wmove(vin, 14, 15);
- wprintw(vin, " C:::::C \n");
- wmove(vin, 15, 15);
- wprintw(vin, " C:::::C CCCCCC\n");
- wmove(vin, 16, 15);
- wprintw(vin, " C:::::CCCCCCCC::::C\n");
- wmove(vin, 17, 15);
- wprintw(vin, " CC:::::::::::::::C\n");
- wmove(vin, 18, 15);
- wprintw(vin, " CCC::::::::::::C\n");
- wmove(vin, 19, 15);
- wprintw(vin, " CCCCCCCCCCCCC\n");
- break;
- case 'd':
- wmove(vin, 3, 15);
- wprintw(vin, " \n" );
- wmove(vin, 4, 15);
- wprintw(vin, " DDDDDDDDDDDDD \n");
- wmove(vin, 5, 15);
- wprintw(vin, " D::::::::::::DDD \n");
- wmove(vin, 6, 15);
- wprintw(vin, " D:::::::::::::::DD \n");
- wmove(vin, 7, 15);
- wprintw(vin, " DDD:::::DDDDD:::::D \n");
- wmove(vin, 8, 15);
- wprintw(vin, " D:::::D D:::::D \n");
- wmove(vin, 9, 15);
- wprintw(vin, " D:::::D D:::::D\n");
- wmove(vin, 10, 15);
- wprintw(vin, " D:::::D D:::::D\n");
- wmove(vin, 11, 15);
- wprintw(vin, " D:::::D D:::::D\n");
- wmove(vin, 12, 15);
- wprintw(vin, " D:::::D D:::::D\n");
- wmove(vin, 13, 15);
- wprintw(vin, " D:::::D D:::::D\n");
- wmove(vin, 14, 15);
- wprintw(vin, " D:::::D D:::::D\n");
- wmove(vin, 15, 15);
- wprintw(vin, " D:::::D D:::::D \n");
- wmove(vin, 16, 15);
- wprintw(vin, " DDD:::::DDDDD:::::D \n");
- wmove(vin, 17, 15);
- wprintw(vin, " D:::::::::::::::DD \n");
- wmove(vin, 18, 15);
- wprintw(vin, " D::::::::::::DDD \n");
- wmove(vin, 19, 15);
- wprintw(vin, " DDDDDDDDDDDDD \n");
- break;
- default:
- wprintw(vin, "BAD PARAMETER");
- break;
- }
- wattron(vin, COLOR_PAIR(1));
- wmove(vin, 9, 65);
- wprintw(vin, "Soft version : %.2f", VERSION);
- wattron(vin, COLOR_PAIR(1));
- wmove(vin, 13, 65);
- wprintw(vin, "Rootfs version : %s", str);
- wattron(vin, COLOR_PAIR(1));
- wmove(vin, 17, 65);
- wprintw(vin, "Kernel version : %s\n", unameData.release);
- wattron(vin, COLOR_PAIR(1));
- wmove(vin, 21, 65);
- wprintw(vin,"IP : %s", inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));
- wrefresh(vin);
- usleep(100);
- }
- getch();
- delwin(vin);
- endwin();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement