TorchCraftAI
A bot for machine learning research on StarCraft: Brood War
Functions | Variables
common::fsutils Namespace Reference

Utility functions for interacting with the file system. More...

Functions

std::string pwd ()
 Returns the current working directory. More...
 
std::string which (std::string const &executable)
 Locates an executable on the system. More...
 
void cd (std::string const &path)
 Change working directory. More...
 
bool exists (std::string const &path, int modeMask=0)
 Checks if a filesystem entry the given path exists. More...
 
bool isdir (std::string const &path, int modeMask=0)
 Checks if the given path is a directory. More...
 
std::string mktempd (std::string const &prefix="tmp", std::string const &tmpdir="")
 Creates a directory at a suitable temporary location and returns its name. More...
 
std::string mktemp (std::string const &prefix="cherrypi.tmp", std::string const &tmpdir="")
 Creates a file at a suitable temporary location and returns its name. More...
 
void touch (std::string const &path)
 Update file access and modification times. More...
 
void rmrf (std::string const &path)
 Recursively remove a file system entry. More...
 
std::vector< std::string > find (std::string const &path, std::string const &pattern)
 Find files matching a pattern (non-recursively). More...
 
std::vector< std::string > findr (std::string const &path, std::string const &pattern)
 Find files matching a pattern (recursively). More...
 
std::vector< std::string > glob (std::string const &pattern)
 File globbing. More...
 
std::vector< unsigned char > md5 (std::string const &path)
 
std::string basename (std::string const &path, std::string const &ext=std::string())
 Equivalent to basename(1) More...
 
std::string dirname (std::string const &path)
 Equivalent to dirname(1) More...
 
void mkdir (std::string const &path, int mode=0777)
 Creates a directory at the given path. More...
 
void mv (std::string const &source, std::string const &dest)
 moves a file system entry. More...
 
size_t size (std::string const &path)
 Get the size of the file in bytes. More...
 
std::chrono::system_clock::time_point mtime (std::string const &path)
 Get the last modification time of the file. More...
 
void writeLines (std::string const &path, std::vector< std::string >)
 writes data to a given path in different lines More...
 
std::vector< std::string > readLines (std::string const &path)
 Reads data from a given path and splits it into separate lines. More...
 
std::vector< std::string > readLinesPartition (std::string const &path, int partition, int numPartitions)
 Reads data from a given path and splits it into separate lines. More...
 

Variables

char constexpr kPathSep = '/'
 

Detailed Description

Utility functions for interacting with the file system.

These are a few simple syscall wrappers for file system interaction. The design here follows a few simple rules:

Function Documentation

std::string common::fsutils::basename ( std::string const &  path,
std::string const &  ext 
)

Equivalent to basename(1)

void common::fsutils::cd ( std::string const &  path)

Change working directory.

std::string common::fsutils::dirname ( std::string const &  path)

Equivalent to dirname(1)

bool common::fsutils::exists ( std::string const &  path,
int  modeMask = 0 
)

Checks if a filesystem entry the given path exists.

If modeMask is non-zero, this function also checks if it applies to the entry's permission bits.

std::vector< std::string > common::fsutils::find ( std::string const &  path,
std::string const &  pattern 
)

Find files matching a pattern (non-recursively).

std::vector< std::string > common::fsutils::findr ( std::string const &  path,
std::string const &  pattern 
)

Find files matching a pattern (recursively).

std::vector< std::string > common::fsutils::glob ( std::string const &  pattern)

File globbing.

bool common::fsutils::isdir ( std::string const &  path,
int  modeMask = 0 
)

Checks if the given path is a directory.

If modeMask is non-zero, this function also checks if it applies to the directory's permission bits.

std::vector< unsigned char > common::fsutils::md5 ( std::string const &  path)
void common::fsutils::mkdir ( std::string const &  path,
int  mode = 0777 
)

Creates a directory at the given path.

If required, intermediate directories will be created.

std::string common::fsutils::mktemp ( std::string const &  prefix = "cherrypi.tmp",
std::string const &  tmpdir = "" 
)

Creates a file at a suitable temporary location and returns its name.

Note: OSX will always use /tmp because of the long directory name sometimes causes problems...

std::string common::fsutils::mktempd ( std::string const &  prefix = "tmp",
std::string const &  tmpdir = "" 
)

Creates a directory at a suitable temporary location and returns its name.

Note: If tmpdir is not specified, OSX will always use /tmp because of the long directory name sometimes causes problems...

std::chrono::system_clock::time_point common::fsutils::mtime ( std::string const &  path)

Get the last modification time of the file.

void common::fsutils::mv ( std::string const &  source,
std::string const &  dest 
)

moves a file system entry.

Roughly corresponds to mv source dest

std::string common::fsutils::pwd ( )

Returns the current working directory.

std::vector< std::string > common::fsutils::readLines ( std::string const &  path)

Reads data from a given path and splits it into separate lines.

std::vector< std::string > common::fsutils::readLinesPartition ( std::string const &  path,
int  partition,
int  numPartitions 
)

Reads data from a given path and splits it into separate lines.

This version will return a given partition of all lines. Specifically, it returns every kth line for which (k % numPartitions) == partition.

void common::fsutils::rmrf ( std::string const &  path)

Recursively remove a file system entry.

Roughly corresponds to rm -rf and thus also silently swallows any errors.

size_t common::fsutils::size ( std::string const &  path)

Get the size of the file in bytes.

void common::fsutils::touch ( std::string const &  path)

Update file access and modification times.

This is a simplified version of touch(1) that changes both access and modification time to "now".

std::string common::fsutils::which ( std::string const &  executable)

Locates an executable on the system.

void common::fsutils::writeLines ( std::string const &  path,
std::vector< std::string >  data 
)

writes data to a given path in different lines

Variable Documentation

char constexpr common::fsutils::kPathSep = '/'