Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *
- * yay-inst.c Yay installation Program
- * gcc yay-inst.c -o yay-inst
- * ./yay-inst
- * The Tux Hat Linux Project By: Gary Perreault, Vince Ford, Cody & Will.
- * 2013-2021
- *
- *
- * Copyright (c) 2021, The Tux Hat Linux 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 <unistd.h> // chdir
- #include <errno.h> // strerror
- #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>
- #define RED "\x1b[31m" // Colours for the logo to make it pretty!
- #define GREEN "\x1b[32m"
- #define BLUE "\x1b[34m"
- #define RESET "\x1b[0m"
- // *** this should only be run in normal user and not ROOT
- void yay_inst(){
- printf("\n\n");
- printf(BLUE"To install packages from AUR you need to install Yay Package Manager. . .");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char buf[256];
- char *argv[] = {
- "git", "clone", "https://aur.archlinux.org/yay.git",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/bin/git", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- // ... cd yay
- void cd_yay(){
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- char *dir = "yay"; // cd to yay <dir>
- int ret;
- ret = chdir (dir);
- if (ret){ // same as ret!=0, means an error occurred and errno is set
- fprintf(stderr, "error: %s\n", strerror(errno));
- }
- }
- void mkpkg_yay(){
- char buf[256];
- char *argv[] = {
- "makepkg", "-sri", "--noconfirm", "--needed",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/usr/bin/makepkg", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- void yay_pkg(){
- printf("\n\n");
- printf(BLUE"This will install Timeshift and Timeshift Autosnap & Gnome Extensions ... ");
- printf(RED" PLEASE HIT "GREEN"ENTER"RED" TO PROCEED."GREEN"\n");
- getchar();
- printf("\n\n");
- char *argv[] = {
- "yay", "-S",
- "timeshift",
- "timeshift-autosnap",
- "gnome-shell-extension-dash-to-dock-gnome40-git",
- 0,
- };
- pid_t pid = fork();
- if(pid == 0) {
- execv("/usr/bin/yay", argv);
- }
- else {
- waitpid(pid, NULL, 0);
- }
- }
- int main( int argc, char **argv ){
- yay_inst();
- cd_yay();
- mkpkg_yay();
- yay_pkg();
- return 0;
- }
Add Comment
Please, Sign In to add comment