From a59730f4d49fed2e27f508a86be4d3ca0fb79753 Mon Sep 17 00:00:00 2001 From: vx-clutch Date: Thu, 21 Aug 2025 18:58:27 -0400 Subject: [PATCH] save --- TODO | 1 + bin/yait | Bin 36080 -> 26696 bytes config.mak | 2 +- src/main.c | 29 ++++++++++++++--------------- tools/Cleanup | 20 ++++++++++++++++++++ tools/format | 2 +- 6 files changed, 37 insertions(+), 17 deletions(-) create mode 100755 tools/Cleanup diff --git a/TODO b/TODO index d5bf250..57b420e 100644 --- a/TODO +++ b/TODO @@ -3,5 +3,6 @@ VX yait --- TODO Todo: * Argument Parsing + * Project creation end of file TODO diff --git a/bin/yait b/bin/yait index 17b3c136968bd6d6fcd649d4b8df2233aec73ff2..90127169f999b4eaee5a133c90f3faedca6408ac 100755 GIT binary patch delta 7489 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 diff --git a/config.mak b/config.mak index 09c76f2..d42c675 100644 --- a/config.mak +++ b/config.mak @@ -1,4 +1,4 @@ PREFIX=/usr/bin/ -CFLAGS=-ggdb -std=c23 +CFLAGS=-Wall -Wextra -O2 --std=c23 -Wpedantic LDFLAGS= CC=gcc diff --git a/src/main.c b/src/main.c index d596ec9..1e557b3 100644 --- a/src/main.c +++ b/src/main.c @@ -8,9 +8,9 @@ // Usage: yait [OPTION]... +#define _POSIX_C_SOURCE 200809L // popen extention #include #include -#define _POSIX_C_SOURCE 200809L // popen extention #include #include #include @@ -21,35 +21,33 @@ #include "util.h" #define print_option(option, description) \ - fprintf(stderr, " %-20s %-20s\n", option, description) + printf(" %-20s %-20s\n", option, description) static void usage(int status) { if (status != 0) { - fputs("Try 'yait --help' for more information.\n", stderr); + puts("Try 'yait --help' for more information.\n"); return; } - fputs("Usage: yait [OPTION]... ", stderr); - fputs("Creates a C project with opinionated defaults.", stderr); - fputs("When only given the first argument it will detect your name.\n", - stderr); - fputs("Mandatory arguments to long options are mandatory for short options too", - stderr); + puts("Usage: yait [OPTION]... "); + puts("Creates a C project with opinionated defaults"); + puts("When only given the first argument it will detect your name\n"); + puts("Mandatory arguments to long options are mandatory for short options too"); print_option("--posix", "Enable POSIX compliance"); print_option("--git", "Do not inititize git reposity"); print_option("--clang", "Add clang-format files and tooling"); print_option("-L ", "Set licence"); print_option("-l ", "Add a library"); print_option("-C", "Use C++"); - print_option("--GNU", - "Add GNU argument parsing: --version, and --help"); + print_option("--GNU", "Add version and help parsing"); print_option("-S, --simple", "Enable simple mode"); - fputs(" --help display this help text and exit", stderr); - fputs(" --version output version information and exit", stderr); + puts(" --help display this help text and exit\n"); + puts(" --version output version information and exit\n"); } -static int parse_arguments(manifest_t *conf, int argc, char **argv) +[[maybe_unused]] static int parse_arguments(manifest_t *conf, int argc, + char **argv) { int opt; @@ -131,7 +129,8 @@ int main(int argc, char **argv) return fprintf(stderr, "error: %s\n", strerror(status)), EXIT_FAILURE; - parse_arguments(&manifest, argc, argv); + // parse_arguments(&manifest, argc, argv); + manifest.flags.simple = true; get_name(&manifest.name); status = create_project(manifest); diff --git a/tools/Cleanup b/tools/Cleanup new file mode 100755 index 0000000..89ff69b --- /dev/null +++ b/tools/Cleanup @@ -0,0 +1,20 @@ +#!/bin/sh + +# Usage: ./Cleanup + +fatal() { + echo "$@" + echo fail. + exit 1 +} + +if [ ! -d "./tools" ]; then + echo "error: must be run from parent directory" + exit 1 +fi + +sh ./tools/format || fatal Could not run './tools/format' +rm -rf .cache || fatal Could not run 'rm -rf .cache' +make dist-clean || fatal Could not run 'make dist-clean' + +echo done. diff --git a/tools/format b/tools/format index 15ad8f5..34a70fc 100755 --- a/tools/format +++ b/tools/format @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/sh # Usage ./format