aboutsummaryrefslogtreecommitdiff
path: root/include/fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/fs.h')
-rw-r--r--include/fs.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/include/fs.h b/include/fs.h
new file mode 100644
index 0000000..7987e33
--- /dev/null
+++ b/include/fs.h
@@ -0,0 +1,29 @@
+#ifndef SPM_FSTREE_H
+#define SPM_FSTREE_H
+
+#define SPM_FSTREE_FLT_NONE 1 << 0
+#define SPM_FSTREE_FLT_CONTAINS 1 << 1
+#define SPM_FSTREE_FLT_ENDSWITH 1 << 2
+#define SPM_FSTREE_FLT_STARTSWITH 1 << 3
+
+typedef struct {
+ char *root;
+ char **dirs;
+ size_t dirs_length;
+ char **files;
+ size_t files_length;
+} FSTree;
+
+int _fstree_compare(const FTSENT **a, const FTSENT **b);
+void fstree_free(FSTree *fsdata);
+FSTree *fstree(const char *_path, char **filter_by, unsigned int filter_mode);
+int rmdirs(const char *_path);
+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);
+char *human_readable_size(uint64_t n);
+
+
+#endif //SPM_FSTREE_H