aboutsummaryrefslogtreecommitdiffhomepage
path: root/application/updater/UpdaterUtils.php
blob: 206f826eda34b5719a5605c0c4b8106206b519b1 (plain) (blame)
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
<?php

namespace Shaarli\Updater;

class UpdaterUtils
{
    /**
     * Read the updates file, and return already done updates.
     *
     * @param string $updatesFilepath Updates file path.
     *
     * @return array Already done update methods.
     */
    public static function readUpdatesFile($updatesFilepath)
    {
        if (! empty($updatesFilepath) && is_file($updatesFilepath)) {
            $content = file_get_contents($updatesFilepath);
            if (! empty($content)) {
                return explode(';', $content);
            }
        }
        return [];
    }

    /**
     * Write updates file.
     *
     * @param string $updatesFilepath Updates file path.
     * @param array  $updates         Updates array to write.
     *
     * @throws \Exception Couldn't write version number.
     */
    public static function writeUpdatesFile($updatesFilepath, $updates)
    {
        if (empty($updatesFilepath)) {
            throw new \Exception('Updates file path is not set, can\'t write updates.');
        }

        $res = file_put_contents($updatesFilepath, implode(';', $updates));
        if ($res === false) {
            throw new \Exception('Unable to write updates in ' . $updatesFilepath . '.');
        }
    }
}