From e64c0efdac1da7339bd5ce849978feb904d265a3 Mon Sep 17 00:00:00 2001 From: Francesco Cozzuto Date: Mon, 1 Dec 2025 14:49:17 +0100 Subject: [PATCH] General repo cleanups --- .gitignore | 2 -- Makefile | 2 +- README.md | 2 ++ test.c => test/generate_test_url.c | 2 +- test/generate_test_url.exe | Bin 0 -> 101453 bytes test.sh => test/spawn_mock_server.sh | 0 6 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 README.md rename test.c => test/generate_test_url.c (96%) create mode 100644 test/generate_test_url.exe rename test.sh => test/spawn_mock_server.sh (100%) diff --git a/.gitignore b/.gitignore index dfb1cf9..36f9d86 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1 @@ -test -test.exe minio diff --git a/Makefile b/Makefile index a941057..cae706f 100644 --- a/Makefile +++ b/Makefile @@ -5,4 +5,4 @@ else endif all: - cc s3.c test.c -o test -Wall -Wextra $(LFLAGS) -ggdb + cc s3.c test/generate_test_url.c -o test/generate_test_url -Wall -Wextra $(LFLAGS) -ggdb diff --git a/README.md b/README.md new file mode 100644 index 0000000..ecfb1ff --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# S3 +This is a small library for generating presigned URLs for AWS S3. diff --git a/test.c b/test/generate_test_url.c similarity index 96% rename from test.c rename to test/generate_test_url.c index 5d7587a..6fc14ce 100644 --- a/test.c +++ b/test/generate_test_url.c @@ -1,5 +1,5 @@ #include -#include "s3.h" +#include "../s3.h" int main(void) { diff --git a/test/generate_test_url.exe b/test/generate_test_url.exe new file mode 100644 index 0000000000000000000000000000000000000000..32f73a0a4a52b438bb3f76231c0de991c9c8d9e7 GIT binary patch literal 101453 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