diff options
| author | Joseph Hunkeler <jhunkeler@gmail.com> | 2019-12-18 21:57:51 -0500 | 
|---|---|---|
| committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2019-12-18 21:57:51 -0500 | 
| commit | 534657dd6fc2ee98159e41d2700554fed0da2c4e (patch) | |
| tree | d9316757b060d68e5640ea9ecb56b29c62adedfc /spm.h | |
| parent | 3166627f1485e2f05421fe874b2236852fe5d017 (diff) | |
| download | spmc-534657dd6fc2ee98159e41d2700554fed0da2c4e.tar.gz | |
Refactor project structure
Diffstat (limited to 'spm.h')
| -rw-r--r-- | spm.h | 181 | 
1 files changed, 0 insertions, 181 deletions
| @@ -1,181 +0,0 @@ -#ifndef SPM_SPM_H -#define SPM_SPM_H - -#include <ctype.h> -#include <dirent.h> -#include <errno.h> -#include <fts.h> -#include <glob.h> -#include <stdio.h> -#include <stdlib.h> -#include <limits.h> -#include <stdarg.h> -#include <string.h> -#include <unistd.h> -#include <time.h> -#include <sys/stat.h> -#include <wordexp.h> -#if !defined(_WIN32) -#include <sys/utsname.h> -#endif - -#include "config.h" - -// spm.c -#define SYSERROR stderr, "%s:%s:%d: %s\n", __FILE__, __FUNCTION__, __LINE__, strerror(errno) -#define DIRSEP_WIN32 '\\' -#define DIRSEP_UNIX '/' -#if defined(_WIN32) -#define DIRSEP  DIRSEP_WIN32 -#define NOT_DIRSEP DIRSEP_UNIX -#else -#define DIRSEP DIRSEP_UNIX -#define NOT_DIRSEP DIRSEP_WIN32 -#endif - -#define PKG_DIR SPM_GLOBAL.package_dir -#define TMP_DIR SPM_GLOBAL.tmp_dir - -#define SHELL_DEFAULT 1 << 0 -#define SHELL_OUTPUT 1 << 1 -#define SHELL_BENCHMARK 1 << 2 - -typedef struct { -    char *root; -    char **dirs; -    size_t dirs_length; -    char **files; -    size_t files_length; -} FSTree; - -typedef struct { -    size_t __size;      // Count of allocated records -    size_t records;     // Count of usable records -    char **list;        // Array of dependencies -} Dependencies; - -typedef struct { -    char *key; -    char *value; -    size_t key_length; -    size_t value_length; -} ConfigItem; - -typedef struct { -    char *package_dir; -    char *tmp_dir; -    char *user_config_basedir; -    char *user_config_file; -    ConfigItem **config; -    struct utsname sysinfo; -} spm_vars; - -typedef struct { -    struct timespec start_time, stop_time; -    double time_elapsed; -    int returncode; -    char *output; -} Process; - -typedef struct { -    char *prefix; -    char *path; -} RelocationEntry; - -// GLOBALS -spm_vars SPM_GLOBAL; - -// shell.c -void shell(Process **proc_info, u_int64_t option, const char *fmt, ...); -void shell_free(Process *proc_info); - -// archive.c -int tar_extract_archive(const char *_archive, const char *_destination); -int tar_extract_file(const char *archive, const char* filename, const char *destination); - -// relocation.c -int relocate(const char *filename, const char *_oldstr, const char *_newstr); -int replace_text(char *data, const char *_spattern, const char *_sreplacement); -int file_replace_text(char *filename, const char *spattern, const char *sreplacement); -RelocationEntry **prefixes_read(const char *filename); -void prefixes_free(RelocationEntry **entry); - -// strings.c -int num_chars(const char *sptr, int ch); -int startswith(const char *sptr, const char *pattern); -int endswith(const char *sptr, const char *pattern); -char *normpath(const char *path); -void strchrdel(char *sptr, const char *chars); -long int strchroff(const char *sptr, int ch); -void strdelsuffix(char *sptr, const char *suffix); -char** split(char *sptr, const char* delim); -void split_free(char **ptr); -char *substring_between(char *sptr, const char *delims); -static int _strsort_compare(const void *a, const void *b); -void strsort(char **arr); -int find_in_file(const char *filename, const char *pattern); - -// find.c -char *find_executable(const char *program); -char *find_file(const char *root, const char *filename); -char *find_package(const char *filename); -int errglob(const char *epath, int eerrno); - -// rpath.c -Process *patchelf(const char *_filename, const char *_args); -char *rpath_autodetect(const char *filename); -int has_rpath(const char *_filename); -char *rpath_get(const char *_filename); -char *rpath_generate(const char *_filename); -int rpath_set(const char *filename, char *_rpath); - -// fs.c -long int get_file_size(const char *filename); -int mkdirs(const char *_path, mode_t mode); -char *dirname(const char *_path); -char *basename(char *path); -int rsync(const char *_args, const char *_source, const char *_destination); - -// config_global.c -char *get_user_conf_dir(void); -char *get_user_config_file(void); -char *get_user_tmp_dir(void); -char *get_user_package_dir(void); - -void init_config_global(void); -void free_global_config(void); -void show_global_config(void); -void check_runtime_environment(void); - -// install.c -int install(const char *destroot, const char *_package); - -// config.c -#define CONFIG_BUFFER_SIZE 1024 - -char *lstrip(char *sptr); -char *strip(char *sptr); -int isempty(char *sptr); -int isquoted(char *sptr); -ConfigItem **config_read(const char *filename); -ConfigItem *config_get(ConfigItem **item, const char *key); -void config_free(ConfigItem **item); -void config_test(void); - -// deps.c -int exists(const char *filename); -int dep_seen(Dependencies **deps, const char *name); -int dep_init(Dependencies **deps); -void dep_free(Dependencies **deps); -int dep_append(Dependencies **deps, char *name); -int dep_solve(Dependencies **deps, const char *filename); -int dep_all(Dependencies **deps, const char *_package); -void dep_show(Dependencies **deps); - -// fstree.c -int _fstree_compare(const FTSENT **a, const FTSENT **b); -void fstree_free(FSTree *fsdata); -FSTree *fstree(const char *_path); -int rmdirs(const char *_path); - -#endif //SPM_SPM_H | 
