3709192002-03-20Martin Nilsson #pike __REAL_VERSION__
29a20a2003-04-27Martin Nilsson #pragma strict_types
3709192002-03-20Martin Nilsson 
fd37f52011-04-25Martin Stjernholm // $Id$
29a20a2003-04-27Martin Nilsson // This module is to allow the _system module to be called System.
d8d4a42001-04-29Mirar (Pontus Hagland) 
fc398b2001-05-31Fredrik Hübinette (Hubbe) inherit _system;
832dd62002-02-21Per Hedbor  constant Timer = __builtin.Timer; constant Time = __builtin.Time;
d919812012-07-17Bill Welliver 
54f5722012-07-17Bill Welliver //! Get the username of the user that started the process. //! //! @returns //! the username of the user "associated" with the current process, or zero //! if a method to find this information does not exist on the current system.
d919812012-07-17Bill Welliver //! //! @note
54f5722012-07-17Bill Welliver //! On NT systems, this returns the user the current thread is running as, //! while on Unix-like systems this function returns the user that started //! the process (rather than the effective user)
d919812012-07-17Bill Welliver string get_user() { #if constant(System.GetUserName) return System.GetUserName();
54f5722012-07-17Bill Welliver #elseif constant(getuid) return [string]getpwuid(getuid())[0];
d919812012-07-17Bill Welliver #else
54f5722012-07-17Bill Welliver  return 0;
d919812012-07-17Bill Welliver #endif /* System.GetUserName */ } //! Get the full path for the current user's home directory
54f5722012-07-17Bill Welliver //! //! @returns //! the full path to the current user's home directory, or zero //! if the appropriate environment variables have not been set. //! //! @note //! This method uses the standard environment variables for
bf5b8a2012-07-17Bill Welliver //! various systems to determine the home directory. string get_home()
d919812012-07-17Bill Welliver { string home = [string]getenv("HOME"); if(home) return home; #if __NT__ string homedrive = [string]getenv("HOMEDRIVE"); home = [string]getenv("HOMEPATH"); if(homedrive)
54f5722012-07-17Bill Welliver  home = combine_path(homedrive + "\\", (home || "\\"));
d919812012-07-17Bill Welliver  if(home) return home; #endif return 0; }