Exemplo n.º 1
0
foreach ($filename_array as $filename) {
    if (is_int(stripos($filename, 'control.tar.gz'))) {
        $control_c_raw_data = $raw_data->getfile($filename);
        $innername = $filename;
        goto nextstep;
    }
}
nextstep:
if (is_int(stripos($control_c_raw_data[0][0], 'control.tar.gz'))) {
    $control_tar_path = "../tmp/" . $r_id . "/old.tar.gz";
    $control_tar_handle = fopen($control_tar_path, 'w');
    fputs($control_tar_handle, $control_c_raw_data[0][6]);
    fclose($control_tar_handle);
    $control_tar = new Tar();
    $new_tar = new Tar();
    $control_tar->load($control_tar_path);
    $control_array = $control_tar->contents();
    foreach ($control_array as $c_key => $c_value) {
        $alert .= "· " . sprintf(__('Processing file: %s'), htmlspecialchars($c_key)) . "<br />";
        if ($c_key != "control") {
            $new_tar->add_file($c_key, "", $control_array[$c_key]['data']);
        }
    }
    $new_path = "../tmp/" . $r_id . "/control.tar.gz";
    $new_tar->add_file("control", "", $f_Package);
    $new_tar->save($new_path);
}
$replace_result = $raw_data->replace($innername, $new_path);
$success = true;
if ($replace_result) {
    $alert .= "· " . __('Package has been successfully written!') . "<br />";
Exemplo n.º 2
0
if (is_int(stripos($control_c_raw_data[0][0], 'control.tar.gz'))) {
    if (!is_dir("../tmp/")) {
        mkdir("../tmp/");
    }
    if (!is_dir("../tmp/" . $r_id)) {
        mkdir("../tmp/" . $r_id);
    }
    $t_path = "../tmp/" . $r_id . '/control.tar.gz';
    if (file_exists($t_path)) {
        unlink($t_path);
    }
    $control_tar_handle = fopen($t_path, 'w');
    fputs($control_tar_handle, $control_c_raw_data[0][6]);
    fclose($control_tar_handle);
    $control_tar = new Tar();
    $control_tar->load($t_path);
    $control_array = $control_tar->contents();
    $control_data = $control_array['control']['data'];
    $plain_array = explode("\n", $control_data);
    foreach ($plain_array as $line) {
        if (strlen(trim(substr($line, 0, 1))) == 0) {
            $t_value = trim($line);
            $t_package[$t_key] .= "\n" . $t_value;
        } else {
            if (preg_match("#^Package|Source|Version|Priority|Section|Essential|Maintainer|Pre-Depends|Depends|Recommends|Suggests|Conflicts|Provides|Replaces|Enhances|Architecture|Filename|Size|Installed-Size|Description|Origin|Bugs|Name|Author|Homepage|Website|Depiction|Icon|Tag|Sponsor#", $line)) {
                preg_match("#^([^:]*?):(.*)#", $line, $t_matches);
                $t_key = trim($t_matches[1]);
                $t_value = trim($t_matches[2]);
                $t_package[$t_key] = $t_value;
            }
        }
Exemplo n.º 3
0
Arquivo: Tar.php Projeto: aji/nursery
    }
    /* nonzero indicates error */
    public function save_one($f, $name, $file)
    {
        $file['size'] = strlen($file['data']);
        $file['name'] = $name;
        $hdr_data = $this->header_pack($file);
        if ($hdr_data === FALSE) {
            return -1;
        }
        unset($file['size']);
        /* size is implicit in data */
        unset($file['name']);
        /* name is array key */
        $f->record_save($hdr_data);
        $f->record_save($file['data']);
        return 0;
    }
}
if (isset($argv)) {
    $tar = new Tar();
    if (count($argv) > 1) {
        $tar->load($argv[1]);
    } else {
        $tar->load("/dev/stdin");
    }
    foreach ($tar->files as $name => $file) {
        echo $name . "\n";
    }
    $tar->save("somefile.tar.gz", ".gz");
}