-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfiguration.php
More file actions
75 lines (69 loc) · 2.41 KB
/
Configuration.php
File metadata and controls
75 lines (69 loc) · 2.41 KB
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
<?php
declare(strict_types=1);
/*
* This file is part of the dotfiles project.
*
* (c) Anthonius Munthi <me@itstoni.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Dotfiles\Core;
use Dotfiles\Core\Config\DefinitionInterface;
use Dotfiles\Core\Util\Toolkit;
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
class Configuration implements DefinitionInterface
{
public function getConfigTreeBuilder()
{
$builder = new TreeBuilder();
$root = $builder->root('dotfiles');
$root
->children()
->scalarNode('env')
->defaultValue('%env(DOTFILES_ENV)%')
->end()
->booleanNode('debug')
->defaultValue('%env(DOTFILES_DEBUG)%')
->end()
->booleanNode('phar_mode')
->defaultValue(getenv('DOTFILES_PHAR_MODE'))
->end()
->scalarNode('dry_run')
->defaultFalse()
->end()
->scalarNode('machine_name')
->defaultValue('%env(DOTFILES_MACHINE_NAME)%')
->end()
->scalarNode('backup_dir')
->defaultValue('%env(DOTFILES_BACKUP_DIR)%')
->end()
->scalarNode('log_dir')
->defaultValue('%env(DOTFILES_LOG_DIR)%')
->end()
->scalarNode('cache_dir')
->defaultValue('%env(DOTFILES_CACHE_DIR)%')
->end()
->scalarNode('home_dir')
->defaultValue('%env(DOTFILES_HOME_DIR)%')
->end()
->scalarNode('base_dir')
->defaultValue(Toolkit::getBaseDir())
->end()
->scalarNode('temp_dir')
->defaultValue('%env(DOTFILES_TEMP_DIR)%')
->end()
->scalarNode('install_dir')
->defaultValue('%env(DOTFILES_INSTALL_DIR)%')
->end()
->scalarNode('bin_dir')
->defaultValue('%env(DOTFILES_INSTALL_DIR)%/bin')
->end()
->scalarNode('vendor_dir')
->defaultValue('%env(DOTFILES_INSTALL_DIR)%/vendor')
->end()
->end()
;
return $builder;
}
}