diff --git a/src/libfileis.c b/src/libfileis.c deleted file mode 100644 index fe68730..0000000 --- a/src/libfileis.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2023 DTB - * SPDX-License-Identifier: AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify it under - * the terms of the GNU Affero General Public License as published by the Free - * Software Foundation, either version 3 of the License, or (at your option) any - * later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more - * details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see https://www.gnu.org/licenses/. - */ - -#include "libfileis.h" - -#include /* access(3), F_OK, R_OK, W_OK, X_OK */ - -int f_executable(char *path){ return access(path, X_OK) == 0; } /* test -x */ -int f_exists(char *path){ return access(path, F_OK) == 0; } /* test -e */ -int f_readable(char *path){ return access(path, R_OK) == 0; } /* test -r */ -int f_writeable(char *path){ return access(path, W_OK) == 0; } /* test -w */ - -#include /* lstat(3), struct stat, S_ISBLK, S_ISCHR, S_ISDIR, - * S_ISFIFO, S_ISGID, S_ISREG, S_ISLNK, S_ISSOCK, - * S_ISUID, S_ISVTX */ - -static struct stat buf; - -int f_blockspecial(char *path){ /* test -b */ - return lstat(path, &buf) != -1 && S_ISBLK(buf.st_mode); -} -int f_charspecial(char *path){ /* test -c */ - return lstat(path, &buf) != -1 && S_ISCHR(buf.st_mode); -} -int f_directory(char *path){ /* test -d */ - return lstat(path, &buf) != -1 && S_ISDIR(buf.st_mode); -} -int f_fifospecial(char *path){ /* test -p */ - return lstat(path, &buf) != -1 && S_ISFIFO(buf.st_mode); -} -int f_gid(char *path){ /* test -g */ - return lstat(path, &buf) != -1 && (buf.st_mode & S_ISGID); -} -int f_regular(char *path){ /* test -f */ - return lstat(path, &buf) != -1 && S_ISREG(buf.st_mode); -} -int f_socket(char *path){ /* test -S */ - return lstat(path, &buf) != -1 && S_ISSOCK(buf.st_mode); -} -int f_sticky(char *path){ /* test -k */ - return lstat(path, &buf) != -1 && (buf.st_mode & S_ISVTX); -} -int f_symlink(char *path){ /* test -h; test -L */ - return lstat(path, &buf) != -1 && S_ISLNK(buf.st_mode); -} -int f_uid(char *path){ /* test -u */ - return lstat(path, &buf) != -1 && (buf.st_mode & S_ISUID); -} diff --git a/src/libfileis.h b/src/libfileis.h deleted file mode 100644 index 0b77cc7..0000000 --- a/src/libfileis.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2023 DTB - * SPDX-License-Identifier: AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify it under - * the terms of the GNU Affero General Public License as published by the Free - * Software Foundation, either version 3 of the License, or (at your option) any - * later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more - * details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see https://www.gnu.org/licenses/. - */ - -/* libfileis functions return true if the condition is true and false if the - * condition is false. Returned values are 0 or 1 only. */ - -/* True if file exists and is a block special file. */ - int f_blockspecial(char *path); - -/* True if file exists and is a character special file. */ - int f_charspecial(char *path); - -/* True if file exists and is a directory. */ - int f_directory(char *path); - -/* True if file exists and is executable. */ - int f_executable(char *path); - -/* True if file exists (regardless of type). */ - int f_exists(char *path); - -/* True if file exists and is a named pipe (FIFO). */ - int f_fifospecial(char *path); - -/* True if file exists and its set group ID flag is set. */ - int f_gid(char *path); - -/* True if file exists and is readable. */ - int f_readable(char *path); - -/* True if file exists and is a regular file. */ - int f_regular(char *path); - -/* True if file exists and is a socket. */ - int f_socket(char *path); - -/* True if file exists and its sticky bit is set. */ - int f_sticky(char *path); - -/* True if file exists and is a symbolic link. */ - int f_symlink(char *path); - -/* True if file exists and its set user ID flag is set. */ - int f_uid(char *path); - -/* True if file exists and is writeable. */ - int f_writeable(char *path);