File: module.pmod

package info (click to toggle)
pike8.0 8.0.1956-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 60,580 kB
  • sloc: ansic: 259,734; xml: 36,320; makefile: 3,748; sh: 1,713; cpp: 1,349; awk: 1,036; lisp: 655; javascript: 468; asm: 242; objc: 240; pascal: 157; sed: 34
file content (58 lines) | stat: -rw-r--r-- 1,526 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#pike __REAL_VERSION__
#pragma strict_types

// This module is to allow the _system module to be called System.

inherit _system;

constant Timer = __builtin.Timer;
constant Time  = __builtin.Time;
#if constant(__builtin.TM)
constant TM    = __builtin.TM;
#endif
//! 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.
//!
//! @note
//!  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)..
string get_user()
{
#if constant(_system.GetUserName)
  return GetUserName();
#elseif constant(getuid)
  return [string]getpwuid(getuid())[0];
#else
  return 0;
#endif
}

//! Get the full path for the current user's home directory
//!
//! @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
//! various systems to determine the home directory.
string get_home()
{
  string home = [string]getenv("HOME");
  if(home) return home;

#if __NT__
  string homedrive = [string]getenv("HOMEDRIVE");
  home = [string]getenv("HOMEPATH");
  if(homedrive)
    home = combine_path(homedrive + "\\", (home||"\\"));
  if(home) return home;
#endif

  return 0;      
}