add different color if git branch is clean, change getcwd to getenv(pwd)

This commit is contained in:
Luca Conte 2024-08-12 00:20:02 +00:00
parent 1772a54d75
commit 1ae6da3678
1 changed files with 23 additions and 3 deletions

26
main.c
View File

@ -46,7 +46,11 @@ int bgUserOther = C_L_YELLOW;
int bgHost = C_L_CYAN;
int bgUser;
int bgBranch = C_L_GRAY;
int bgBranchClean = C_L_GRAY;
int bgBranchNotClean = C_D_GRAY;
int bgBranch;
int bgEnd = C_CYAN;
int bgFolder[] = { C_WHITE, C_CYAN };
int numFolderColors = 2;
@ -70,8 +74,7 @@ void seperate(int col1, int col2) {
}
int main(void) {
char path_buf[1024];
getcwd(path_buf, sizeof(path_buf));
char* path_buf = getenv("PWD");
char hostname_buf[1024];
gethostname(hostname_buf, sizeof(hostname_buf));
@ -87,6 +90,17 @@ int main(void) {
if (fgets(branch, sizeof(branch), fp) == NULL) branch[0] = 0x00;
fclose(fp);
int changes = 1;
if (strlen(branch) > 0) {
fp = popen("/usr/bin/git status --porcelain 2>/dev/null", "r");
if (fp == NULL) exit(1);
char dummy[2];
if (fgets(dummy, 2, fp) == NULL) {
changes = 0;
}
fclose(fp);
}
uid_t uid = getuid();
if (uid == 0) {
@ -142,6 +156,11 @@ int main(void) {
if (strlen(branch) > 0) {
if (changes == 0) {
bgBranch = bgBranchClean;
} else {
bgBranch = bgBranchNotClean;
}
bgcol(bgBranch);
wprintf(L" ");
printGlyph(BRANCH);
@ -150,6 +169,7 @@ int main(void) {
if (branch[i] == '\n') break;
wprintf(L"%c", branch[i]);
}
wprintf(L" ");
seperate(bgBranch, bgEnd);
}
bgcol(bgEnd);