aboutsummaryrefslogtreecommitdiff
path: root/src/fetch_pwd.c
diff options
context:
space:
mode:
authordacctal <dacctal@symlinx.net>2026-06-21 01:33:58 +0000
committerdacctal <dacctal@symlinx.net>2026-06-21 01:33:58 +0000
commit7cde9aeb5dccce578c1eed13cf1ed2c61e446800 (patch)
tree3323e34bbec0a87a4bb659a90816b28a6a241f5a /src/fetch_pwd.c
parent6482da05e96630d622f7deea02e31cb0ff07c89e (diff)
huge code cleanup
Diffstat (limited to 'src/fetch_pwd.c')
-rw-r--r--src/fetch_pwd.c68
1 files changed, 33 insertions, 35 deletions
diff --git a/src/fetch_pwd.c b/src/fetch_pwd.c
index 84cd54d..7e2f2e4 100644
--- a/src/fetch_pwd.c
+++ b/src/fetch_pwd.c
@@ -1,6 +1,4 @@
#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <ftw.h>
@@ -12,41 +10,41 @@
static const char *pwd_dst;
static int copy_entry(const char *fpath, const struct stat *sb, int typeflag, struct FTW *ftwbuf) {
- (void)ftwbuf;
- const char *rel = fpath;
- if (rel[0] == '.' && rel[1] == '/') rel += 2;
- if (rel[0] == '\0') return 0;
-
- char dst[MAX_PATH_LEN];
- snprintf(dst, sizeof(dst), "%s/%s", pwd_dst, rel);
-
- if (typeflag == FTW_D) {
- mkdir(dst, 0755);
- } else if (typeflag == FTW_F) {
- int src_fd = open(fpath, O_RDONLY);
- if (src_fd < 0) return -1;
-
- int dst_fd = open(dst, O_WRONLY | O_CREAT | O_TRUNC, sb->st_mode & 07777);
- if (dst_fd < 0) { close(src_fd); return -1; }
-
- char buf[8192];
- ssize_t n;
- while ((n = read(src_fd, buf, sizeof(buf))) > 0) {
- ssize_t written = 0;
- while (written < n) {
- ssize_t ret = write(dst_fd, buf + written, n - written);
- if (ret < 0) { close(src_fd); close(dst_fd); return -1; }
- written += ret;
- }
- }
-
- close(src_fd);
- close(dst_fd);
+ (void)ftwbuf;
+ const char *rel = fpath;
+ if (rel[0] == '.' && rel[1] == '/') rel += 2;
+ if (rel[0] == '\0') return 0;
+
+ char dst[MAX_PATH_LEN];
+ snprintf(dst, sizeof(dst), "%s/%s", pwd_dst, rel);
+
+ if (typeflag == FTW_D) {
+ mkdir(dst, 0755);
+ } else if (typeflag == FTW_F) {
+ int src_fd = open(fpath, O_RDONLY);
+ if (src_fd < 0) return -1;
+
+ int dst_fd = open(dst, O_WRONLY | O_CREAT | O_TRUNC, sb->st_mode & 07777);
+ if (dst_fd < 0) { close(src_fd); return -1; }
+
+ char buf[8192];
+ ssize_t n;
+ while ((n = read(src_fd, buf, sizeof(buf))) > 0) {
+ ssize_t written = 0;
+ while (written < n) {
+ ssize_t ret = write(dst_fd, buf + written, n - written);
+ if (ret < 0) { close(src_fd); close(dst_fd); return -1; }
+ written += ret;
}
- return 0;
+ }
+
+ close(src_fd);
+ close(dst_fd);
+ }
+ return 0;
}
void fetch_pwd(Pkg pkg) {
- pwd_dst = pkg.src;
- nftw(".", copy_entry, 64, FTW_PHYS);
+ pwd_dst = pkg.src;
+ nftw(".", copy_entry, 64, FTW_PHYS);
} \ No newline at end of file