summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorczjstmax <jstmaxlol@disroot.org>2025-11-19 23:32:39 +0100
committerczjstmax <jstmaxlol@disroot.org>2025-11-19 23:32:39 +0100
commitd223ec3f87aace98da1813d6b0ab039c21ae988a (patch)
treed7052467db6519f6b12ae1ad91378d9faec52462
parent382aea8be706e21fad8776144ac0d1417f86fa81 (diff)
goodnight for now - now you can `g c a` at least :)
-rw-r--r--g.c51
1 files changed, 48 insertions, 3 deletions
diff --git a/g.c b/g.c
index 4d609ad..da58fb2 100644
--- a/g.c
+++ b/g.c
@@ -111,7 +111,8 @@ int main(int argc, char **argv) {
} else if (strlen(strn2) > 0) {
char command_buffer[4096] = "git init ";
strcat(command_buffer, strn2); // TODO: use snprintf or anything safer than strcat()
- system(command_buffer);
+ system(command_buffer); // git init [path]
+ return 0;
}
} else if (matches(strn1, diff_vars) == 0) {
if (strlen(strn2) == 0) {
@@ -128,6 +129,51 @@ int main(int argc, char **argv) {
return 0;
}
}
+ } else if (matches(strn1, commit_vars) == 0) {
+ if (strlen(strn2) == 0) {
+ system("git commit");
+ return 0;
+ } else if (strlen(strn2) > 0) {
+ if (matches(strn2, commit_add_vars) == 0) {
+ system("git commit -a");
+ return 0;
+ } // the commit_message_vars check is in the argc == 4, because it demands another argument too
+ }
+ } else if (matches(strn1, fetch_vars) == 0) {
+ if (strlen(strn2) == 0) {
+ system("git fetch");
+ return 0;
+ } else if (strlen(strn2) > 0) {
+ char command_buffer[4096] = "git fetch ";
+ strcat(command_buffer, strn2);
+ system(command_buffer); // git fetch [remote]
+ return 0;
+ }
+ } else if (matches(strn1, merge_vars) == 0) {
+ if (strlen(strn2) == 0) {
+ system("git merge");
+ return 0;
+ } else if (strlen(strn2) > 0) {
+ char command_buffer[4096] = "git merge ";
+ strcat(command_buffer, strn2);
+ system(command_buffer); // git merge [branch]
+ return 0;
+ }
+ } else if (matches(strn1, push_vars) == 0) {
+ if (strlen(strn2) == 0) {
+ system("git push");
+ return 0;
+ } else if (strlen(strn2) > 0) {
+ if (matches(strn2, push_upstream_vars) == 0) {
+ system("git push --upstream");
+ return 0;
+ } else {
+ char command_buffer[4096] = "git push ";
+ strcat(command_buffer, strn2);
+ system(command_buffer); // git push [remote]
+ return 0;
+ }
+ }
}
}
@@ -151,8 +197,7 @@ void usage() {
"spinning version %s%s%s\n"
"==============================================================\n"
"generally: 'g [%sstuff%s]', got it?\n"
- "[] -> %soptional%s\n"
- "{} -> %srequired%s\n"
+ "[] -> %soptional%s | {} -> %srequired%s\n"
"==============================================================\n"
"stuff;\n"
"g %si%s [path] -> git %si%snit [path]\n"