Passed
Push — master ( bf1c87...c52a02 )
by Joas
16:33 queued 11s
created
lib/private/Log/Errorlog.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -29,14 +29,14 @@
 block discarded – undo
29 29
 
30 30
 class Errorlog implements IWriter {
31 31
 
32
-	/**
33
-	 * write a message in the log
34
-	 * @param string $app
35
-	 * @param string $message
36
-	 * @param int $level
37
-	 */
38
-	public function write(string $app, $message, int $level) {
39
-		error_log('[owncloud]['.$app.']['.$level.'] '.$message);
40
-	}
32
+    /**
33
+     * write a message in the log
34
+     * @param string $app
35
+     * @param string $message
36
+     * @param int $level
37
+     */
38
+    public function write(string $app, $message, int $level) {
39
+        error_log('[owncloud]['.$app.']['.$level.'] '.$message);
40
+    }
41 41
 }
42 42
 
Please login to merge, or discard this patch.
lib/public/Log/IWriter.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -30,8 +30,8 @@
 block discarded – undo
30 30
  * @since 14.0.0
31 31
  */
32 32
 interface IWriter {
33
-	/**
34
-	 * @since 14.0.0
35
-	 */
36
-	public function write(string $app, $message, int $level);
33
+    /**
34
+     * @since 14.0.0
35
+     */
36
+    public function write(string $app, $message, int $level);
37 37
 }
Please login to merge, or discard this patch.
lib/private/DateTimeZone.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -65,7 +65,7 @@  discard block
 block discarded – undo
65 65
 		try {
66 66
 			return new \DateTimeZone($timeZone);
67 67
 		} catch (\Exception $e) {
68
-			\OCP\Util::writeLog('datetimezone', 'Failed to created DateTimeZone "' . $timeZone . "'", ILogger::DEBUG);
68
+			\OCP\Util::writeLog('datetimezone', 'Failed to created DateTimeZone "'.$timeZone."'", ILogger::DEBUG);
69 69
 			return new \DateTimeZone($this->getDefaultTimeZone());
70 70
 		}
71 71
 	}
@@ -86,9 +86,9 @@  discard block
 block discarded – undo
86 86
 			// so a positive offset means negative timeZone
87 87
 			// and the other way around.
88 88
 			if ($offset > 0) {
89
-				$timeZone = 'Etc/GMT-' . $offset;
89
+				$timeZone = 'Etc/GMT-'.$offset;
90 90
 			} else {
91
-				$timeZone = 'Etc/GMT+' . abs($offset);
91
+				$timeZone = 'Etc/GMT+'.abs($offset);
92 92
 			}
93 93
 
94 94
 			return new \DateTimeZone($timeZone);
@@ -110,7 +110,7 @@  discard block
 block discarded – undo
110 110
 			}
111 111
 
112 112
 			// No timezone found, fallback to UTC
113
-			\OCP\Util::writeLog('datetimezone', 'Failed to find DateTimeZone for offset "' . $offset . "'", ILogger::DEBUG);
113
+			\OCP\Util::writeLog('datetimezone', 'Failed to find DateTimeZone for offset "'.$offset."'", ILogger::DEBUG);
114 114
 			return new \DateTimeZone($this->getDefaultTimeZone());
115 115
 		}
116 116
 	}
Please login to merge, or discard this patch.
Indentation   +86 added lines, -86 removed lines patch added patch discarded remove patch
@@ -30,100 +30,100 @@
 block discarded – undo
30 30
 use OCP\ISession;
31 31
 
32 32
 class DateTimeZone implements IDateTimeZone {
33
-	/** @var IConfig */
34
-	protected $config;
33
+    /** @var IConfig */
34
+    protected $config;
35 35
 
36
-	/** @var ISession */
37
-	protected $session;
36
+    /** @var ISession */
37
+    protected $session;
38 38
 
39
-	/**
40
-	 * Constructor
41
-	 *
42
-	 * @param IConfig $config
43
-	 * @param ISession $session
44
-	 */
45
-	public function __construct(IConfig $config, ISession $session) {
46
-		$this->config = $config;
47
-		$this->session = $session;
48
-	}
39
+    /**
40
+     * Constructor
41
+     *
42
+     * @param IConfig $config
43
+     * @param ISession $session
44
+     */
45
+    public function __construct(IConfig $config, ISession $session) {
46
+        $this->config = $config;
47
+        $this->session = $session;
48
+    }
49 49
 
50
-	/**
51
-	 * Get the timezone of the current user, based on his session information and config data
52
-	 *
53
-	 * @param bool|int $timestamp
54
-	 * @return \DateTimeZone
55
-	 */
56
-	public function getTimeZone($timestamp = false) {
57
-		$timeZone = $this->config->getUserValue($this->session->get('user_id'), 'core', 'timezone', null);
58
-		if ($timeZone === null) {
59
-			if ($this->session->exists('timezone')) {
60
-				return $this->guessTimeZoneFromOffset($this->session->get('timezone'), $timestamp);
61
-			}
62
-			$timeZone = $this->getDefaultTimeZone();
63
-		}
50
+    /**
51
+     * Get the timezone of the current user, based on his session information and config data
52
+     *
53
+     * @param bool|int $timestamp
54
+     * @return \DateTimeZone
55
+     */
56
+    public function getTimeZone($timestamp = false) {
57
+        $timeZone = $this->config->getUserValue($this->session->get('user_id'), 'core', 'timezone', null);
58
+        if ($timeZone === null) {
59
+            if ($this->session->exists('timezone')) {
60
+                return $this->guessTimeZoneFromOffset($this->session->get('timezone'), $timestamp);
61
+            }
62
+            $timeZone = $this->getDefaultTimeZone();
63
+        }
64 64
 
65
-		try {
66
-			return new \DateTimeZone($timeZone);
67
-		} catch (\Exception $e) {
68
-			\OCP\Util::writeLog('datetimezone', 'Failed to created DateTimeZone "' . $timeZone . "'", ILogger::DEBUG);
69
-			return new \DateTimeZone($this->getDefaultTimeZone());
70
-		}
71
-	}
65
+        try {
66
+            return new \DateTimeZone($timeZone);
67
+        } catch (\Exception $e) {
68
+            \OCP\Util::writeLog('datetimezone', 'Failed to created DateTimeZone "' . $timeZone . "'", ILogger::DEBUG);
69
+            return new \DateTimeZone($this->getDefaultTimeZone());
70
+        }
71
+    }
72 72
 
73
-	/**
74
-	 * Guess the DateTimeZone for a given offset
75
-	 *
76
-	 * We first try to find a Etc/GMT* timezone, if that does not exist,
77
-	 * we try to find it manually, before falling back to UTC.
78
-	 *
79
-	 * @param mixed $offset
80
-	 * @param bool|int $timestamp
81
-	 * @return \DateTimeZone
82
-	 */
83
-	protected function guessTimeZoneFromOffset($offset, $timestamp) {
84
-		try {
85
-			// Note: the timeZone name is the inverse to the offset,
86
-			// so a positive offset means negative timeZone
87
-			// and the other way around.
88
-			if ($offset > 0) {
89
-				$timeZone = 'Etc/GMT-' . $offset;
90
-			} else {
91
-				$timeZone = 'Etc/GMT+' . abs($offset);
92
-			}
73
+    /**
74
+     * Guess the DateTimeZone for a given offset
75
+     *
76
+     * We first try to find a Etc/GMT* timezone, if that does not exist,
77
+     * we try to find it manually, before falling back to UTC.
78
+     *
79
+     * @param mixed $offset
80
+     * @param bool|int $timestamp
81
+     * @return \DateTimeZone
82
+     */
83
+    protected function guessTimeZoneFromOffset($offset, $timestamp) {
84
+        try {
85
+            // Note: the timeZone name is the inverse to the offset,
86
+            // so a positive offset means negative timeZone
87
+            // and the other way around.
88
+            if ($offset > 0) {
89
+                $timeZone = 'Etc/GMT-' . $offset;
90
+            } else {
91
+                $timeZone = 'Etc/GMT+' . abs($offset);
92
+            }
93 93
 
94
-			return new \DateTimeZone($timeZone);
95
-		} catch (\Exception $e) {
96
-			// If the offset has no Etc/GMT* timezone,
97
-			// we try to guess one timezone that has the same offset
98
-			foreach (\DateTimeZone::listIdentifiers() as $timeZone) {
99
-				$dtz = new \DateTimeZone($timeZone);
100
-				$dateTime = new \DateTime();
94
+            return new \DateTimeZone($timeZone);
95
+        } catch (\Exception $e) {
96
+            // If the offset has no Etc/GMT* timezone,
97
+            // we try to guess one timezone that has the same offset
98
+            foreach (\DateTimeZone::listIdentifiers() as $timeZone) {
99
+                $dtz = new \DateTimeZone($timeZone);
100
+                $dateTime = new \DateTime();
101 101
 
102
-				if ($timestamp !== false) {
103
-					$dateTime->setTimestamp($timestamp);
104
-				}
102
+                if ($timestamp !== false) {
103
+                    $dateTime->setTimestamp($timestamp);
104
+                }
105 105
 
106
-				$dtOffset = $dtz->getOffset($dateTime);
107
-				if ($dtOffset == 3600 * $offset) {
108
-					return $dtz;
109
-				}
110
-			}
106
+                $dtOffset = $dtz->getOffset($dateTime);
107
+                if ($dtOffset == 3600 * $offset) {
108
+                    return $dtz;
109
+                }
110
+            }
111 111
 
112
-			// No timezone found, fallback to UTC
113
-			\OCP\Util::writeLog('datetimezone', 'Failed to find DateTimeZone for offset "' . $offset . "'", ILogger::DEBUG);
114
-			return new \DateTimeZone($this->getDefaultTimeZone());
115
-		}
116
-	}
112
+            // No timezone found, fallback to UTC
113
+            \OCP\Util::writeLog('datetimezone', 'Failed to find DateTimeZone for offset "' . $offset . "'", ILogger::DEBUG);
114
+            return new \DateTimeZone($this->getDefaultTimeZone());
115
+        }
116
+    }
117 117
 
118
-	/**
119
-	 * Get the default timezone of the server
120
-	 *
121
-	 * Falls back to UTC if it is not yet set.
122
-	 *
123
-	 * @return string
124
-	 */
125
-	protected function getDefaultTimeZone() {
126
-		$serverTimeZone = date_default_timezone_get();
127
-		return $serverTimeZone ?: 'UTC';
128
-	}
118
+    /**
119
+     * Get the default timezone of the server
120
+     *
121
+     * Falls back to UTC if it is not yet set.
122
+     *
123
+     * @return string
124
+     */
125
+    protected function getDefaultTimeZone() {
126
+        $serverTimeZone = date_default_timezone_get();
127
+        return $serverTimeZone ?: 'UTC';
128
+    }
129 129
 }
Please login to merge, or discard this patch.
lib/public/Log/RotationTrait.php 2 patches
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -32,40 +32,40 @@
 block discarded – undo
32 32
  */
33 33
 trait RotationTrait {
34 34
 
35
-	/**
36
-	 * @var string
37
-	 * @since 14.0.0
38
-	 */
39
-	protected $filePath;
35
+    /**
36
+     * @var string
37
+     * @since 14.0.0
38
+     */
39
+    protected $filePath;
40 40
 
41
-	/**
42
-	 * @var int
43
-	 * @since 14.0.0
44
-	 */
45
-	protected $maxSize;
41
+    /**
42
+     * @var int
43
+     * @since 14.0.0
44
+     */
45
+    protected $maxSize;
46 46
 
47
-	/**
48
-	 * @return string the resulting new filepath
49
-	 * @since 14.0.0
50
-	 */
51
-	protected function rotate():string {
52
-		$rotatedFile = $this->filePath.'.1';
53
-		rename($this->filePath, $rotatedFile);
54
-		return $rotatedFile;
55
-	}
47
+    /**
48
+     * @return string the resulting new filepath
49
+     * @since 14.0.0
50
+     */
51
+    protected function rotate():string {
52
+        $rotatedFile = $this->filePath.'.1';
53
+        rename($this->filePath, $rotatedFile);
54
+        return $rotatedFile;
55
+    }
56 56
 
57
-	/**
58
-	 * @return bool
59
-	 * @since 14.0.0
60
-	 */
61
-	protected function shouldRotateBySize():bool {
62
-		if ((int)$this->maxSize > 0) {
63
-			$filesize = @filesize($this->filePath);
64
-			if ($filesize >= (int)$this->maxSize) {
65
-				return true;
66
-			}
67
-		}
68
-		return false;
69
-	}
57
+    /**
58
+     * @return bool
59
+     * @since 14.0.0
60
+     */
61
+    protected function shouldRotateBySize():bool {
62
+        if ((int)$this->maxSize > 0) {
63
+            $filesize = @filesize($this->filePath);
64
+            if ($filesize >= (int)$this->maxSize) {
65
+                return true;
66
+            }
67
+        }
68
+        return false;
69
+    }
70 70
 
71 71
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -59,9 +59,9 @@
 block discarded – undo
59 59
 	 * @since 14.0.0
60 60
 	 */
61 61
 	protected function shouldRotateBySize():bool {
62
-		if ((int)$this->maxSize > 0) {
62
+		if ((int) $this->maxSize > 0) {
63 63
 			$filesize = @filesize($this->filePath);
64
-			if ($filesize >= (int)$this->maxSize) {
64
+			if ($filesize >= (int) $this->maxSize) {
65 65
 				return true;
66 66
 			}
67 67
 		}
Please login to merge, or discard this patch.
ocm-provider/index.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@
 block discarded – undo
20 20
  */
21 21
 
22 22
 
23
-require_once __DIR__ . '/../lib/base.php';
23
+require_once __DIR__.'/../lib/base.php';
24 24
 
25 25
 header('Content-Type: application/json');
26 26
 
Please login to merge, or discard this patch.
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -29,12 +29,12 @@
 block discarded – undo
29 29
 $isEnabled = $server->getAppManager()->isEnabledForUser('cloud_federation_api');
30 30
 
31 31
 if ($isEnabled) {
32
-	// Make sure the routes are loaded
33
-	\OC_App::loadApp('cloud_federation_api');
34
-	$capabilities = new OCA\CloudFederationAPI\Capabilities($server->getURLGenerator());
35
-	header('Content-Type: application/json');
36
-	echo json_encode($capabilities->getCapabilities()['ocm']);
32
+    // Make sure the routes are loaded
33
+    \OC_App::loadApp('cloud_federation_api');
34
+    $capabilities = new OCA\CloudFederationAPI\Capabilities($server->getURLGenerator());
35
+    header('Content-Type: application/json');
36
+    echo json_encode($capabilities->getCapabilities()['ocm']);
37 37
 } else {
38
-	header($_SERVER["SERVER_PROTOCOL"]." 501 Not Implemented", true, 501);
39
-	exit("501 Not Implemented");
38
+    header($_SERVER["SERVER_PROTOCOL"]." 501 Not Implemented", true, 501);
39
+    exit("501 Not Implemented");
40 40
 }
Please login to merge, or discard this patch.
lib/public/Federation/Exceptions/ProviderDoesNotExistsException.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -32,7 +32,7 @@
 block discarded – undo
32 32
 	 */
33 33
 	public function __construct($providerId) {
34 34
 		$l = \OC::$server->getL10N('federation');
35
-		$message = 'Cloud Federation Provider with ID: "' . $providerId . '" does not exist.';
35
+		$message = 'Cloud Federation Provider with ID: "'.$providerId.'" does not exist.';
36 36
 		$hint = $l->t('Cloud Federation Provider with ID: "%s" does not exist.', [$providerId]);
37 37
 		parent::__construct($message, $hint);
38 38
 	}
Please login to merge, or discard this patch.
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -32,18 +32,18 @@
 block discarded – undo
32 32
  */
33 33
 class ProviderDoesNotExistsException extends HintException {
34 34
 
35
-	/**
36
-	 * ProviderDoesNotExistsException constructor.
37
-	 *
38
-	 * @since 14.0.0
39
-	 *
40
-	 * @param string $providerId cloud federation provider ID
41
-	 */
42
-	public function __construct($providerId) {
43
-		$l = \OC::$server->getL10N('federation');
44
-		$message = 'Cloud Federation Provider with ID: "' . $providerId . '" does not exist.';
45
-		$hint = $l->t('Cloud Federation Provider with ID: "%s" does not exist.', [$providerId]);
46
-		parent::__construct($message, $hint);
47
-	}
35
+    /**
36
+     * ProviderDoesNotExistsException constructor.
37
+     *
38
+     * @since 14.0.0
39
+     *
40
+     * @param string $providerId cloud federation provider ID
41
+     */
42
+    public function __construct($providerId) {
43
+        $l = \OC::$server->getL10N('federation');
44
+        $message = 'Cloud Federation Provider with ID: "' . $providerId . '" does not exist.';
45
+        $hint = $l->t('Cloud Federation Provider with ID: "%s" does not exist.', [$providerId]);
46
+        parent::__construct($message, $hint);
47
+    }
48 48
 
49 49
 }
Please login to merge, or discard this patch.
core/Command/Db/Migrations/GenerateCommand.php 2 patches
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -113,7 +113,7 @@  discard block
 block discarded – undo
113 113
 		$appName = $input->getArgument('app');
114 114
 		$version = $input->getArgument('version');
115 115
 
116
-		if (!preg_match('/^\d{1,16}$/',$version)) {
116
+		if (!preg_match('/^\d{1,16}$/', $version)) {
117 117
 			$output->writeln('<error>The given version is invalid. Only 0-9 are allowed (max. 16 digits)</error>');
118 118
 			return 1;
119 119
 		}
@@ -121,7 +121,7 @@  discard block
 block discarded – undo
121 121
 		$ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output));
122 122
 
123 123
 		$date = date('YmdHis');
124
-		$path = $this->generateMigration($ms, 'Version' . $version . 'Date' . $date);
124
+		$path = $this->generateMigration($ms, 'Version'.$version.'Date'.$date);
125 125
 
126 126
 		$output->writeln("New migration class has been generated to <info>$path</info>");
127 127
 		return 0;
@@ -151,7 +151,7 @@  discard block
 block discarded – undo
151 151
 			$appName = $context->getWordAtIndex($context->getWordIndex() - 1);
152 152
 
153 153
 			$version = explode('.', $this->appManager->getAppVersion($appName));
154
-			return [$version[0] . sprintf('%1$03d', $version[1])];
154
+			return [$version[0].sprintf('%1$03d', $version[1])];
155 155
 		}
156 156
 
157 157
 		return [];
@@ -165,7 +165,7 @@  discard block
 block discarded – undo
165 165
 	 */
166 166
 	protected function generateMigration(MigrationService $ms, $className, $schemaBody = '') {
167 167
 		if ($schemaBody === '') {
168
-			$schemaBody = "\t\t" . 'return null;';
168
+			$schemaBody = "\t\t".'return null;';
169 169
 		}
170 170
 
171 171
 
@@ -183,7 +183,7 @@  discard block
 block discarded – undo
183 183
 		$dir = $ms->getMigrationsDirectory();
184 184
 
185 185
 		$this->ensureMigrationDirExists($dir);
186
-		$path = $dir . '/' . $className . '.php';
186
+		$path = $dir.'/'.$className.'.php';
187 187
 
188 188
 		if (file_put_contents($path, $code) === false) {
189 189
 			throw new RuntimeException('Failed to generate new migration step.');
Please login to merge, or discard this patch.
Indentation   +127 added lines, -127 removed lines patch added patch discarded remove patch
@@ -38,8 +38,8 @@  discard block
 block discarded – undo
38 38
 use Symfony\Component\Console\Output\OutputInterface;
39 39
 
40 40
 class GenerateCommand extends Command implements CompletionAwareInterface {
41
-	protected static $_templateSimple =
42
-		'<?php
41
+    protected static $_templateSimple =
42
+        '<?php
43 43
 
44 44
 declare(strict_types=1);
45 45
 
@@ -83,129 +83,129 @@  discard block
 block discarded – undo
83 83
 }
84 84
 ';
85 85
 
86
-	/** @var Connection */
87
-	protected $connection;
88
-
89
-	/** @var IAppManager */
90
-	protected $appManager;
91
-
92
-	/**
93
-	 * @param Connection $connection
94
-	 * @param IAppManager $appManager
95
-	 */
96
-	public function __construct(Connection $connection, IAppManager $appManager) {
97
-		$this->connection = $connection;
98
-		$this->appManager = $appManager;
99
-
100
-		parent::__construct();
101
-	}
102
-
103
-	protected function configure() {
104
-		$this
105
-			->setName('migrations:generate')
106
-			->addArgument('app', InputArgument::REQUIRED, 'Name of the app this migration command shall work on')
107
-			->addArgument('version', InputArgument::REQUIRED, 'Major version of this app, to allow versions on parallel development branches')
108
-		;
109
-
110
-		parent::configure();
111
-	}
112
-
113
-	public function execute(InputInterface $input, OutputInterface $output): int {
114
-		$appName = $input->getArgument('app');
115
-		$version = $input->getArgument('version');
116
-
117
-		if (!preg_match('/^\d{1,16}$/',$version)) {
118
-			$output->writeln('<error>The given version is invalid. Only 0-9 are allowed (max. 16 digits)</error>');
119
-			return 1;
120
-		}
121
-
122
-		$ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output));
123
-
124
-		$date = date('YmdHis');
125
-		$path = $this->generateMigration($ms, 'Version' . $version . 'Date' . $date);
126
-
127
-		$output->writeln("New migration class has been generated to <info>$path</info>");
128
-		return 0;
129
-	}
130
-
131
-	/**
132
-	 * @param string $optionName
133
-	 * @param CompletionContext $context
134
-	 * @return string[]
135
-	 */
136
-	public function completeOptionValues($optionName, CompletionContext $context) {
137
-		return [];
138
-	}
139
-
140
-	/**
141
-	 * @param string $argumentName
142
-	 * @param CompletionContext $context
143
-	 * @return string[]
144
-	 */
145
-	public function completeArgumentValues($argumentName, CompletionContext $context) {
146
-		if ($argumentName === 'app') {
147
-			$allApps = \OC_App::getAllApps();
148
-			return array_diff($allApps, \OC_App::getEnabledApps(true, true));
149
-		}
150
-
151
-		if ($argumentName === 'version') {
152
-			$appName = $context->getWordAtIndex($context->getWordIndex() - 1);
153
-
154
-			$version = explode('.', $this->appManager->getAppVersion($appName));
155
-			return [$version[0] . sprintf('%1$03d', $version[1])];
156
-		}
157
-
158
-		return [];
159
-	}
160
-
161
-	/**
162
-	 * @param MigrationService $ms
163
-	 * @param string $className
164
-	 * @param string $schemaBody
165
-	 * @return string
166
-	 */
167
-	protected function generateMigration(MigrationService $ms, $className, $schemaBody = '') {
168
-		if ($schemaBody === '') {
169
-			$schemaBody = "\t\t" . 'return null;';
170
-		}
171
-
172
-
173
-		$placeHolders = [
174
-			'{{namespace}}',
175
-			'{{classname}}',
176
-			'{{schemabody}}',
177
-		];
178
-		$replacements = [
179
-			$ms->getMigrationsNamespace(),
180
-			$className,
181
-			$schemaBody,
182
-		];
183
-		$code = str_replace($placeHolders, $replacements, self::$_templateSimple);
184
-		$dir = $ms->getMigrationsDirectory();
185
-
186
-		$this->ensureMigrationDirExists($dir);
187
-		$path = $dir . '/' . $className . '.php';
188
-
189
-		if (file_put_contents($path, $code) === false) {
190
-			throw new RuntimeException('Failed to generate new migration step.');
191
-		}
192
-
193
-		return $path;
194
-	}
195
-
196
-	protected function ensureMigrationDirExists($directory) {
197
-		if (file_exists($directory) && is_dir($directory)) {
198
-			return;
199
-		}
200
-
201
-		if (file_exists($directory)) {
202
-			throw new \RuntimeException("Could not create folder \"$directory\"");
203
-		}
204
-
205
-		$this->ensureMigrationDirExists(dirname($directory));
206
-
207
-		if (!@mkdir($directory) && !is_dir($directory)) {
208
-			throw new \RuntimeException("Could not create folder \"$directory\"");
209
-		}
210
-	}
86
+    /** @var Connection */
87
+    protected $connection;
88
+
89
+    /** @var IAppManager */
90
+    protected $appManager;
91
+
92
+    /**
93
+     * @param Connection $connection
94
+     * @param IAppManager $appManager
95
+     */
96
+    public function __construct(Connection $connection, IAppManager $appManager) {
97
+        $this->connection = $connection;
98
+        $this->appManager = $appManager;
99
+
100
+        parent::__construct();
101
+    }
102
+
103
+    protected function configure() {
104
+        $this
105
+            ->setName('migrations:generate')
106
+            ->addArgument('app', InputArgument::REQUIRED, 'Name of the app this migration command shall work on')
107
+            ->addArgument('version', InputArgument::REQUIRED, 'Major version of this app, to allow versions on parallel development branches')
108
+        ;
109
+
110
+        parent::configure();
111
+    }
112
+
113
+    public function execute(InputInterface $input, OutputInterface $output): int {
114
+        $appName = $input->getArgument('app');
115
+        $version = $input->getArgument('version');
116
+
117
+        if (!preg_match('/^\d{1,16}$/',$version)) {
118
+            $output->writeln('<error>The given version is invalid. Only 0-9 are allowed (max. 16 digits)</error>');
119
+            return 1;
120
+        }
121
+
122
+        $ms = new MigrationService($appName, $this->connection, new ConsoleOutput($output));
123
+
124
+        $date = date('YmdHis');
125
+        $path = $this->generateMigration($ms, 'Version' . $version . 'Date' . $date);
126
+
127
+        $output->writeln("New migration class has been generated to <info>$path</info>");
128
+        return 0;
129
+    }
130
+
131
+    /**
132
+     * @param string $optionName
133
+     * @param CompletionContext $context
134
+     * @return string[]
135
+     */
136
+    public function completeOptionValues($optionName, CompletionContext $context) {
137
+        return [];
138
+    }
139
+
140
+    /**
141
+     * @param string $argumentName
142
+     * @param CompletionContext $context
143
+     * @return string[]
144
+     */
145
+    public function completeArgumentValues($argumentName, CompletionContext $context) {
146
+        if ($argumentName === 'app') {
147
+            $allApps = \OC_App::getAllApps();
148
+            return array_diff($allApps, \OC_App::getEnabledApps(true, true));
149
+        }
150
+
151
+        if ($argumentName === 'version') {
152
+            $appName = $context->getWordAtIndex($context->getWordIndex() - 1);
153
+
154
+            $version = explode('.', $this->appManager->getAppVersion($appName));
155
+            return [$version[0] . sprintf('%1$03d', $version[1])];
156
+        }
157
+
158
+        return [];
159
+    }
160
+
161
+    /**
162
+     * @param MigrationService $ms
163
+     * @param string $className
164
+     * @param string $schemaBody
165
+     * @return string
166
+     */
167
+    protected function generateMigration(MigrationService $ms, $className, $schemaBody = '') {
168
+        if ($schemaBody === '') {
169
+            $schemaBody = "\t\t" . 'return null;';
170
+        }
171
+
172
+
173
+        $placeHolders = [
174
+            '{{namespace}}',
175
+            '{{classname}}',
176
+            '{{schemabody}}',
177
+        ];
178
+        $replacements = [
179
+            $ms->getMigrationsNamespace(),
180
+            $className,
181
+            $schemaBody,
182
+        ];
183
+        $code = str_replace($placeHolders, $replacements, self::$_templateSimple);
184
+        $dir = $ms->getMigrationsDirectory();
185
+
186
+        $this->ensureMigrationDirExists($dir);
187
+        $path = $dir . '/' . $className . '.php';
188
+
189
+        if (file_put_contents($path, $code) === false) {
190
+            throw new RuntimeException('Failed to generate new migration step.');
191
+        }
192
+
193
+        return $path;
194
+    }
195
+
196
+    protected function ensureMigrationDirExists($directory) {
197
+        if (file_exists($directory) && is_dir($directory)) {
198
+            return;
199
+        }
200
+
201
+        if (file_exists($directory)) {
202
+            throw new \RuntimeException("Could not create folder \"$directory\"");
203
+        }
204
+
205
+        $this->ensureMigrationDirExists(dirname($directory));
206
+
207
+        if (!@mkdir($directory) && !is_dir($directory)) {
208
+            throw new \RuntimeException("Could not create folder \"$directory\"");
209
+        }
210
+    }
211 211
 }
Please login to merge, or discard this patch.
lib/private/Repair/NC14/AddPreviewBackgroundCleanupJob.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -30,19 +30,19 @@
 block discarded – undo
30 30
 
31 31
 class AddPreviewBackgroundCleanupJob implements IRepairStep {
32 32
 
33
-	/** @var IJobList */
34
-	private $jobList;
33
+    /** @var IJobList */
34
+    private $jobList;
35 35
 
36
-	public function __construct(IJobList $jobList) {
37
-		$this->jobList = $jobList;
38
-	}
36
+    public function __construct(IJobList $jobList) {
37
+        $this->jobList = $jobList;
38
+    }
39 39
 
40
-	public function getName(): string {
41
-		return 'Add preview background cleanup job';
42
-	}
40
+    public function getName(): string {
41
+        return 'Add preview background cleanup job';
42
+    }
43 43
 
44
-	public function run(IOutput $output) {
45
-		$this->jobList->add(BackgroundCleanupJob::class);
46
-	}
44
+    public function run(IOutput $output) {
45
+        $this->jobList->add(BackgroundCleanupJob::class);
46
+    }
47 47
 
48 48
 }
Please login to merge, or discard this patch.
lib/public/Federation/Exceptions/ActionNotSupportedException.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -31,7 +31,7 @@
 block discarded – undo
31 31
 	 */
32 32
 	public function __construct($action) {
33 33
 		$l = \OC::$server->getL10N('federation');
34
-		$message = 'Action "' . $action . '" not supported or implemented.';
34
+		$message = 'Action "'.$action.'" not supported or implemented.';
35 35
 		$hint = $l->t('Action "%s" not supported or implemented.', [$action]);
36 36
 		parent::__construct($message, $hint);
37 37
 	}
Please login to merge, or discard this patch.
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -32,17 +32,17 @@
 block discarded – undo
32 32
  */
33 33
 class ActionNotSupportedException extends HintException {
34 34
 
35
-	/**
36
-	 * ActionNotSupportedException constructor.
37
-	 *
38
-	 * @since 14.0.0
39
-	 *
40
-	 */
41
-	public function __construct($action) {
42
-		$l = \OC::$server->getL10N('federation');
43
-		$message = 'Action "' . $action . '" not supported or implemented.';
44
-		$hint = $l->t('Action "%s" not supported or implemented.', [$action]);
45
-		parent::__construct($message, $hint);
46
-	}
35
+    /**
36
+     * ActionNotSupportedException constructor.
37
+     *
38
+     * @since 14.0.0
39
+     *
40
+     */
41
+    public function __construct($action) {
42
+        $l = \OC::$server->getL10N('federation');
43
+        $message = 'Action "' . $action . '" not supported or implemented.';
44
+        $hint = $l->t('Action "%s" not supported or implemented.', [$action]);
45
+        parent::__construct($message, $hint);
46
+    }
47 47
 
48 48
 }
Please login to merge, or discard this patch.