Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *
- * bbinst.c BSDBOX installer Program
- * cc bbinst.c -o bbinst
- * ./bbinst
- * The BSDBox Project By: Gary Perreault, and Vincent (anybody is welcome to contrib).
- * 2016
- *
- *
- * Copyright (c) 2016, The BSDBOX Project Team.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * The views and conclusions contained in the software and documentation are those
- * of the authors and should not be interpreted as representing official policies,
- * either expressed or implied, of the FreeBSD Project.
- */
- #include <ncurses.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/utsname.h>
- #include <unistd.h>
- #include <string.h>
- #include <errno.h>
- #include <sys/wait.h>
- #include <sys/sysctl.h>
- #define RED "\x1b[31m" // Colours for the logo to make it pretty!
- #define GREEN "\x1b[32m"
- #define BLUE "\x1b[34m"
- #define RESET "\x1b[0m"
- /* BSDBOX logo created by me, I use block characters */
- void print_logo(){
- printf(RED"╔═══════════════════════════════════════════════════════════════════╗\n");
- printf(RED"║ ▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄ ▄▄▄▄ "RED"║\n");
- printf(RED"║ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ▄▄ ▄▄ "RED" ║\n");
- printf(RED"║ ▄▄ ▄▄▄ ▄▄ ▄▄▄ ▄▄▄▄ ▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄ ▄ "RED" ║\n");
- printf(RED"║ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄ ▄▄ "RED" ║\n");
- printf(RED"║ ▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄▄ ▄▄▄▄▄▄▄ ▄▄▄ ▄▄▄ ▄▄ "RED" ║\n");
- printf(RED"║ ▄▄ ▄▄▄ ▄▄ ▄▄▄ ▄▄▄▄ ▄▄ ▄▄▄ ▄▄▄ ▄▄▄ ▄ ▄ "RED" ║\n");
- printf(RED"║ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ▄▄ ▄▄ "RED" ║\n");
- printf(RED"║ ▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ ▄▄▄▄ ▄▄▄▄"RED" ║\n");
- printf(RED"║"GREEN" Install v2.1"RED" ║\n");
- printf(RED"╚═══════════════════════════════════════════════════════════════════╝"RESET"\n");
- }
- /* This function does pkg install and all the packages you need for the Skel */
- void pkg_inst(){
- printf("\n\n");
- printf(BLUE"This is the Default Base Packages for BSDBox X11, and extra useful packages .. ");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char *argv[] = {
- "pkg", "install",
- "xorg",
- "dmenu",
- "compton",
- "geany",
- "vim",
- "irssi",
- "firefox",
- "smplayer",
- "openshot",
- "thunar",
- "lxappearance",
- "gimp",
- "sudo",
- "gksu",
- "nitrogen",
- "lxmusic",
- "ppsspp",
- "rxvt-unicode",
- "bash",
- "mc",
- "tmux",
- "scrot",
- "gtk-murrine-engine",
- "webcamd",
- "pwcview",
- "engrampa",
- "eggdrop",
- "tdom",
- "nano",
- "git",
- "subversion",
- "weechat",
- "rtorrent",
- "feh",
- "fusefs-ntfs",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/usr/sbin/pkg", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- /* This function will extract the Skel Gunzip Config to the $home <DIR> */
- void skel_extract(){
- printf("\n\n");
- printf(BLUE"Now lets unextract the SKEL configs for BSDBox ..");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char buf[256];
- sprintf(buf, "/usr/home/%s", getlogin());
- char *argv[] = {
- "tar", "-xvzf",
- "bsdboxskel.tar.gz",
- "-C",
- buf,
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/usr/bin/tar", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- /* This Function will run 4 runlevel of cp -v of 4 files being copied to /usr/local/bin for bsdboxdwm status*/
- void status_bsdboxdwm1(){
- printf("\n\n");
- printf(BLUE"This part will copy 4 shell scripts for BSDBOXdwm Status");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char buf[256];
- char *argv[] = {
- "cp", "-v", "timedwm", "/usr/local/bin",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/bin/cp", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- void status_bsdboxdwm2(){
- char buf[256];
- char *argv[] = {
- "cp", "-v", "uptimedwm", "/usr/local/bin",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/bin/cp", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- void status_bsdboxdwm3(){
- char buf[256];
- char *argv[] = {
- "cp", "-v", "xmms2np", "/usr/local/bin",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/bin/cp", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- void status_bsdboxdwm4(){
- char buf[256];
- char *argv[] = {
- "cp", "-v", "memuse", "/usr/local/bin",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/bin/cp", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- /* This function will run portsnap fetch and extract ports tree */
- void portsnap_fetch(){
- printf("\n\n");
- printf(BLUE"BSDBox Installer will now portsnap fetch .. ");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char *argv[] = {
- "portsnap",
- "fetch",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/usr/sbin/portsnap", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- /* This function will run portsnap fetch and extract ports tree */
- void portsnap_extract(){
- printf("\n\n");
- printf(BLUE"BSDBox Installer will now portsnap extract .. ");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char *argv[] = {
- "portsnap",
- "extract",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/usr/sbin/portsnap", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- /* This function will run dwm_conf and install bsdbox UI */
- /* Will also be using chdir in this function */
- void DWM_CONF1(){
- printf("\n\n");
- printf(BLUE"DWM_CONF1 will make deinstall BSDBox DWM .. ");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char *dconf = "/usr/ports/x11-wm/dwm";
- int ret;
- ret = chdir ( dconf );
- char *argv[] = {
- "make",
- "deinstall",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/usr/bin/make", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- void DWM_CONF2(){
- printf("\n\n");
- printf(BLUE"DWM_CONF2 will make BSDBox DWM config.h .. ");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char buf[256];
- sprintf(buf, "DWM_CONF=/usr/home/%s/dwm-6_1/config.h", getlogin());
- char *dconf = "/usr/ports/x11-wm/dwm";
- int ret;
- ret = chdir ( dconf );
- char *argv[] = {
- "make",
- buf,
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/usr/bin/make", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- void DWM_CONF3(){
- printf("\n\n");
- printf(BLUE"DWM_CONF3 will make install clean BSDBox DWM .. ");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char *dconf = "/usr/ports/x11-wm/dwm";
- int ret;
- ret = chdir ( dconf );
- char *argv[] = {
- "make",
- "install",
- "clean",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/usr/bin/make", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- /* This function just thank you for trying out the project ;) */
- void thank_you(){
- printf("\n\n");
- printf(RED"Thank You for trying out "BLUE"BSDBox"RED"!"RESET"\n");
- printf("\n\n");
- }
- int main( int argc, char **argv ){
- print_logo();
- pkg_inst();
- skel_extract();
- status_bsdboxdwm1();
- status_bsdboxdwm2();
- status_bsdboxdwm3();
- status_bsdboxdwm4();
- portsnap_fetch();
- portsnap_extract();
- DWM_CONF1();
- DWM_CONF2();
- DWM_CONF3();
- thank_you();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment