Subversion Repository Public Repository

Nextrek

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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php

/* vim: set shiftwidth=2 expandtab softtabstop=2: */

namespace Boris;

/**
 * Config handles loading configuration files for boris
 */
class Config {
  private $_searchPaths;
  private $_cascade = false;
  private $_files   = array();

  /**
   * Create a new Config instance, optionally with an array
   * of paths to search for configuration files.
   *
   * Additionally, if the second, optional boolean argument is
   * true, all existing configuration files will be loaded, and
   * effectively merged.
   *
   * @param array $searchPaths
   * @param bool  $cascade
   */
  public function __construct($searchPaths = null, $cascade = false) {
    if (is_null($searchPaths)) {
      $searchPaths = array();

      if ($userHome = getenv('HOME')) {
        $searchPaths[] = "{$userHome}/.borisrc";
      }

      $searchPaths[] = getcwd() . '/.borisrc';
    }

    $this->_cascade     = $cascade;
    $this->_searchPaths = $searchPaths;
  }

  /**
   * Searches for configuration files in the available
   * search paths, and applies them to the provided
   * boris instance.
   *
   * Returns true if any configuration files were found.
   *
   * @param  Boris\Boris $boris
   * @return bool
   */
  public function apply(Boris $boris) {
    $applied = false;

    foreach($this->_searchPaths as $path) {
      if (is_readable($path)) {
        $this->_loadInIsolation($path, $boris);

        $applied = true;
        $this->_files[] = $path;

        if (!$this->_cascade) {
          break;
        }
      }
    }

    return $applied;
  }

  /**
   * Returns an array of files that were loaded
   * for this Config
   *
   * @return array
   */
  public function loadedFiles() {
    return $this->_files;
  }

  // -- Private Methods

  private function _loadInIsolation($path, $boris) {
    require $path;
  }
}

Commits for Nextrek/Aiba_backup/vendor/d11wtq/boris/lib/Boris/Config.php

Diff revisions: vs.
Revision Author Commited Message
1464 MOliva picture MOliva Tue 13 Oct, 2020 11:16:56 +0000