]>
Commit | Line | Data |
---|---|---|
19875ef0 NL |
1 | #!/usr/bin/php |
2 | <?php | |
93fd4692 NL |
3 | require_once __DIR__. '/../vendor/autoload.php'; |
4 | ||
5 | use Symfony\Component\Yaml\Yaml; | |
6 | ||
7 | $parameters = Yaml::parse(file_get_contents('app/config/parameters.yml')); | |
19875ef0 NL |
8 | |
9 | echo 'Okay, you want to install wallabag, let\'s go!'; | |
10 | echo "\r\n"; | |
11 | ||
19875ef0 NL |
12 | function executeQuery($handle, $sql, $params) { |
13 | try | |
14 | { | |
15 | $query = $handle->prepare($sql); | |
16 | $query->execute($params); | |
17 | return $query->fetchAll(); | |
18 | } | |
19 | catch (Exception $e) | |
20 | { | |
21 | return false; | |
22 | } | |
23 | } | |
24 | ||
25 | $configFile = 'app/config/config.inc.php'; | |
80709502 | 26 | $dbFile = 'data/db/poche.sqlite'; |
19875ef0 NL |
27 | $username = 'wallabag'; |
28 | $password = 'wallabag'; | |
93fd4692 | 29 | $salt = $parameters['parameters']['secret']; |
19875ef0 NL |
30 | $defaultLanguage = 'en_EN.UTF8'; |
31 | ||
32 | if (!copy('app/config/config.inc.default.php', $configFile)) { | |
33 | die('Installation aborted, impossible to create ' . $configFile . ' file. Maybe you don\'t have write access to create it.'); | |
34 | } | |
35 | ||
36 | $content = file_get_contents($configFile); | |
37 | $content = str_replace("define ('SALT', '');", "define ('SALT', '".$salt."');", $content); | |
38 | file_put_contents($configFile, $content); | |
39 | ||
40 | if (!copy('bin/poche.sqlite', $dbFile)) { | |
41 | die('Impossible to create ' . $dbFile . ' file.'); | |
42 | } | |
43 | ||
44 | chmod($dbFile, 0777); | |
45 | ||
46 | $dbPath = 'sqlite:' . realpath('') . '/' . $dbFile; | |
47 | ||
48 | $handle = new PDO($dbPath); | |
49 | ||
50 | $handle->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); | |
51 | ||
52 | $saltedPassword = sha1($password . $username . $salt); | |
53 | ||
54 | $sql = "INSERT INTO users (username, password, name, email) VALUES (?, ?, ?, '')"; | |
55 | $params = array($username, $saltedPassword, $username); | |
56 | $query = executeQuery($handle, $sql, $params); | |
57 | ||
58 | $idUser = (int)$handle->lastInsertId('users_id_seq'); | |
59 | ||
60 | $sql = 'INSERT INTO users_config ( user_id, name, value ) VALUES (?, ?, ?)'; | |
61 | $params = array($idUser, 'pager', '10'); | |
62 | $query = executeQuery($handle, $sql, $params); | |
63 | ||
64 | $sql = 'INSERT INTO users_config ( user_id, name, value ) VALUES (?, ?, ?)'; | |
65 | $params = array($idUser, 'language', $defaultLanguage); | |
66 | $query = executeQuery($handle, $sql, $params); | |
67 | ||
68 | echo 'wallabag is now installed'; | |
3eb95157 | 69 | echo "\r\n"; |
163eae0b | 70 | echo 'Just execute `php app/console server:run` for using wallabag:'; |
3eb95157 | 71 | echo "\r\n"; |
163eae0b | 72 | echo 'http://localhost:8000'; |