Completed
Push — master ( 9384cf...fa6152 )
by ARCANEDEV
22s
created

Command::getSelectedWorkspace()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 0
cts 0
cp 0
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 0
crap 6
1
<?php namespace Arcanedev\Assets\Console;
2
3
use Arcanedev\Assets\Exceptions\NotInitiatedException;
4
use Arcanedev\Assets\Helpers\Workspaces;
5
use Illuminate\Console\Command as BaseCommand;
6
use Illuminate\Pipeline\Pipeline;
7
8
/**
9
 * Class     Command
10
 *
11
 * @package  Arcanedev\Assets\Console
12
 * @author   ARCANEDEV <[email protected]>
13
 *
14
 * @property  \Illuminate\Foundation\Application  $laravel
15
 */
16
abstract class Command extends BaseCommand
17
{
18
    /* -----------------------------------------------------------------
19
     |  Main Methods
20
     | -----------------------------------------------------------------
21
     */
22
23
    /**
24
     * Execute the console command.
25
     *
26
     * @return mixed
27
     */
28
    abstract public function handle();
29
30
    /* -----------------------------------------------------------------
31
     |  Common Methods
32
     | -----------------------------------------------------------------
33
     */
34
35
    /**
36
     * Create a new pipeline.
37
     *
38
     * @return \Illuminate\Pipeline\Pipeline
39
     */
40
    protected function pipeline()
41
    {
42
        return new Pipeline($this->laravel);
43
    }
44
45
    /**
46
     * Get the passable for the pipeline.
47
     *
48
     * @return array
49
     */
50
    protected function getPassable()
51
    {
52
        $default   = $this->getSelectedWorkspace();
53
        $workspace = Workspaces::get($default);
54
55
        return array_merge(
56
            $workspace,
57
            [
58
                'workspace' => $default,
59
                'public-directory' => config('assets.public-directory', 'public'),
60
            ]
61
        );
62
    }
63
64
    /**
65
     * Check if the assets was initiated.
66
     */
67
    protected function ensureIsInitiated()
68
    {
69
        $default = $this->getSelectedWorkspace();
70
71
        if ( ! Workspaces::rootDirectoryExists($default))
72
            NotInitiatedException::throw();
73
    }
74
75
    /**
76
     * Get the default workspace.
77
     *
78
     * @return \Illuminate\Config\Repository|mixed
79
     */
80
    protected function getSelectedWorkspace()
81
    {
82
        return $this->option('workspace') ?: Workspaces::getDefaultName();
83
    }
84
}
85