Ejemplo n.º 1
0
function cloud_build()
{
    $pars = _cloud_build_params();
    $pars['method'] = 'application.build';
    $pars['extra'] = cloud_extra_data();
    $dat = cloud_request('http://v2.addons.we7.cc/gateway.php', $pars);
    $file = IA_ROOT . '/data/application.build';
    $ret = _cloud_shipping_parse($dat, $file);
    if (!is_error($ret)) {
        if ($ret['state'] == 'warning') {
            $ret['files'] = cloud_client_define();
            unset($ret['schemas']);
            unset($ret['scripts']);
        } else {
            $files = array();
            if (!empty($ret['files'])) {
                foreach ($ret['files'] as $file) {
                    $entry = IA_ROOT . $file['path'];
                    if (!is_file($entry) || md5_file($entry) != $file['checksum']) {
                        $files[] = $file['path'];
                    }
                }
            }
            $ret['files'] = $files;
            $schemas = array();
            if (!empty($ret['schemas'])) {
                load()->func('db');
                foreach ($ret['schemas'] as $remote) {
                    $name = substr($remote['tablename'], 4);
                    $local = db_table_schema(pdo(), $name);
                    unset($remote['increment']);
                    unset($local['increment']);
                    if (empty($local)) {
                        $schemas[] = $remote;
                    } else {
                        $sqls = db_table_fix_sql($local, $remote);
                        if (!empty($sqls)) {
                            $schemas[] = $remote;
                        }
                    }
                }
            }
            $ret['schemas'] = $schemas;
        }
        if ($ret['family'] == 'x' && IMS_FAMILY == 'v') {
            load()->model('setting');
            setting_upgrade_version('x', IMS_VERSION, IMS_RELEASE_DATE);
            message('您已经购买了商业授权版本, 系统将转换为商业版, 并重新运行自动更新程序.', 'refresh');
        }
        $ret['upgrade'] = false;
        if (!empty($ret['files']) || !empty($ret['schemas']) || !empty($ret['scripts'])) {
            $ret['upgrade'] = true;
        }
        $upgrade = array();
        $upgrade['upgrade'] = $ret['upgrade'];
        $upgrade['lastupdate'] = TIMESTAMP;
        cache_write('upgrade', $upgrade);
    }
    return $ret;
}
Ejemplo n.º 2
0
/**
 * [WeEngine System] Copyright (c) 2014 WE7.CC
 * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
 */
load()->func('file');
load()->model('cloud');
load()->func('communication');
if ($do == 'check') {
    $filetree = file_tree(IA_ROOT);
    $modify = array();
    $unknown = array();
    $lose = array();
    $pars = _cloud_build_params();
    $pars['method'] = 'application.build';
    $pars['extra'] = cloud_extra_data();
    $dat = cloud_request('http://v2.addons.we7.cc/gateway.php', $pars);
    $file = IA_ROOT . '/data/application.build';
    $ret = _cloud_shipping_parse($dat, $file);
    foreach ($ret['files'] as $value) {
        $clouds[$value['path']]['path'] = $value['path'];
        $clouds[$value['path']]['checksum'] = $value['checksum'];
    }
    foreach ($filetree as $filename) {
        $file = str_replace(IA_ROOT, '', $filename);
        $ignore_list = array(strpos($file, '/data/tpl/') === 0, substr($file, -8) == 'map.json', strpos($file, '/data/logs') === 0, strpos($file, '/attachment') === 0, $file == '/data/config.php', strpos($file, '/data') === 0 && substr($file, -4) == 'lock', strpos($file, '/app/themes/default') === 0, $file == '/framework/version.inc.php');
        if (in_array(true, $ignore_list)) {
            continue;
        }
        if (preg_match('/\\/addons\\/([a-zA-Z_0-9\\-]+)\\/.*/', $file, $match)) {
            $module = IA_ROOT . '/addons/' . $match[1];