/** * Verify integrity of the site, automatically taking any actions to restore * it if broken. * * Return values: * 0 Nothing done (everything is probably OK). * -1 Error (the error has been logged through trigger_error). * 1 gitblog cache was updated. * 2 gitdir is missing and need to be created (git init). * 3 upgrade performed */ static function verify_integrity() { $r = 0; if (!is_dir(gb::$site_dir . '/.git/info/gitblog')) { if (!is_dir(gb::$site_dir . '/.git')) { # 2: no repo/not initialized return 2; } # 1: gitblog cache updated gb_maint::sync_site_state(); GBRebuilder::rebuild(true); return 1; } # load site.json $r = self::load_site_state(); # check site state if ($r === false || !isset(gb::$site_state['url']) || !gb::$site_state['url'] || gb::$site_state['url'] !== gb::$site_url && strpos(gb::$site_url, '://localhost') === false && strpos(gb::$site_url, '://127.0.0.1') === false) { return gb_maint::sync_site_state() === false ? -1 : 0; } elseif (gb::$site_state['version'] !== gb::$version) { return gb_maint::upgrade(gb::$site_state['version']) ? 0 : -1; } elseif (gb::$site_state['posts_pagesize'] !== gb::$posts_pagesize) { gb_maint::sync_site_state(); GBRebuilder::rebuild(true); return 1; } return 0; }