#!/usr/local/bin/php-cgi -f . * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* parse the configuration and include all functions used below */ require_once("config.inc"); require_once("functions.inc"); require_once("util.inc"); $fp = fopen('php://stdin', 'r'); do { $dirs = array(); $dirs = return_dir_as_array("/var/db/pfi/"); if (!is_array($dirs)) { echo "\nNo capable storage devices detected.\n"; fclose($fp); return; } echo "\nDevices capable of config.xml storage:\n"; foreach ($dirs as $dir) { preg_match_all("/capable\_(.*)/", $dir, $match_array); echo $match_array[1][0] . " "; } echo "\n\n"; echo "Enter the device that you wish the"; echo "\n"; echo "{$g['product_name']} configuration file to reside on: "; $move_config_to_device = chop(fgets($fp)); if ($move_config_to_device == "") { fclose($fp); return 0; } } while (!$move_config_to_device); mwexec("/bin/mkdir -p /tmp/mnt/cf"); $status = mwexec("/sbin/mount -w -t msdosfs /dev/{$move_config_to_device} /tmp/mnt/cf"); if (!$status) { echo "Error while mounting {$move_config_to_device}.\n"; fclose($fp); return; } echo "\n\nProcessing: "; $lockkey = lock('config'); echo "moving..."; mwexec("mkdir -p /tmp/mnt/cf/conf/"); mwexec("/bin/mv /cf/conf/config.xml /tmp/mnt/cf/conf/"); echo "removing old..."; echo " nullfs... "; system("/sbin/umount /cf/conf"); system("/sbin/umount /conf"); mwexec("/bin/rm -rf /conf/*.*"); /* use nullfs to mount */ system("/sbin/mount_nullfs /tmp/mnt/cf/conf /conf"); system("/sbin/mount_nullfs /tmp/mnt/cf /cf"); echo "linking..."; mwexec("/bin/rm -rf /var/db/pfi"); unlock($lockkey); echo "done.\n"; echo "\nYour configuration has been moved to {$move_config_to_device}\n"; touch("/tmp/config_moved"); fclose($fp); ?>