Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
10582 lgm 1
<?php
2
 
3
// backward compatibility
4
if ( !function_exists('sys_get_temp_dir'))
5
{
6
    function sys_get_temp_dir()
7
    {
8
        if ($temp = getenv('TMP')) return $temp;
9
        if ($temp = getenv('TEMP')) return $temp;
10
        if ($temp = getenv('TMPDIR')) return $temp;
11
        $temp = tempnam(__FILE__, '');
12
        if (file_exists($temp))
13
        {
14
          unlink($temp);
15
          return dirname($temp);
16
        }
17
        return '/tmp'; // the best we can do
18
    }
19
}
20
 
21
class Spark_utils {
22
 
23
    private static $buffer = false;
24
    private static $lines = array();
25
 
26
    static function get_lines()
27
    {
28
        return self::$lines;
29
    }
30
 
31
    static function buffer()
32
    {
33
        self::$buffer = true;
34
    }
35
 
36
    static function full_move($src, $dst)
37
    {
38
        $dir = opendir($src);
39
        @mkdir($dst);
40
        while(false !== ($file = readdir($dir))) {
41
            if (($file != '.') && ($file != '..')) {
42
                if (is_dir($src . '/' . $file)) {
43
                    self::full_move($src . '/' . $file,$dst . '/' . $file);
44
                }
45
                else {
46
                    rename($src . '/' . $file,$dst . '/' . $file);
47
                }
48
            }
49
        }
50
        closedir($dir);
51
    }
52
 
53
    static function remove_full_directory($dir, $vocally = false)
54
    {
55
        if (is_dir($dir))
56
        {
57
            $objects = scandir($dir);
58
            foreach ($objects as $object)
59
            {
60
                if ($object != '.' && $object != '..')
61
                {
62
                    if (filetype($dir . '/' . $object) == "dir")
63
                    {
64
                        self::remove_full_directory($dir . '/' . $object, $vocally);
65
                    }
66
                    else
67
                    {
68
                        if ($vocally) self::notice("Removing $dir/$object");
69
                        unlink($dir . '/' . $object);
70
                    }
71
                }
72
            }
73
            reset($objects);
74
            return rmdir($dir);
75
        }
76
    }
77
 
78
    static function notice($msg)
79
    {
80
        self::line($msg, 'SPARK', '[1;36m');
81
    }
82
 
83
    static function error($msg)
84
    {
85
        self::line($msg, 'ERROR', '[1;31m');
86
    }
87
 
88
    static function warning($msg)
89
    {
90
        self::line($msg, 'WARNING', '[1;33m');
91
    }
92
 
93
    static function line($msg = '', $s = null, $color = null)
94
    {
95
        foreach(explode("\n", $msg) as $line)
96
        {
97
            if (self::$buffer)
98
            {
99
                self::$lines[] = $line;
100
            }
101
            else
102
            {
103
                echo !$s ? "$line\n" : chr(27) . $color . "[ $s ]" . chr(27) . "[0m" . " $line\n"; 
104
            }
105
        }
106
    }
107
 
108
}