#ifndef MSP_FS_UTILS_H_
#define MSP_FS_UTILS_H_
+#include "path.h"
+
namespace Msp {
namespace FS {
-class Path;
-
/// Extracts the last component of the path.
std::string basename(const Path &);
*/
Path fix_case(const Path &path);
+/// Reads the contents of a symbolic link
+Path readlink(const Path &path);
+
+/// Resolves all symlinks from a path. Will always return an absolute path.
+Path realpath(const Path &path);
+
/// Removes a file
void unlink(const Path &path);
+/// Renames a file. Existing file, if any, is overwritten.
+void rename(const Path &from, const Path &to);
+
/// Makes a path relative to some base path. That is, base/result==path.
Path relative(const Path &path, const Path &base);