#!/usr/bin/php
<?php
#    ftrunc.php - a script to truncate files
#    Copyright (C) 2008 Roman Mamedov <http://rm.pp.ru/>
#
#    This program is free software: you can redistribute it and/or modify it under the terms of
#    the GNU General Public License version 3 as published by the Free Software Foundation.
#    See http://www.gnu.org/licenses/gpl-3.0.html for more details.

$file = $argv[1];
$size = $argv[2];
$unit = $argv[3];

if((trim($file)=="") || (!is_numeric($size)))
  die ("Usage:\n  ftrunc.php <file name> <new size> <size unit(K/M/G/T)>\n");

switch ($unit) {
  case "K":
    $size_b = $size*1024; break;
  case "M":
    $size_b = $size*1024*1024; break;
  case "G":
    $size_b = $size*1024*1024*1024; break;
  case "T":
    $size_b = $size*1024*1024*1024*1024; break;
  default:
    $unit = "";
    $size_b = $size;
}

echo "File: $file\n";

if($unit!="") {
  echo "New size: $size $unit ($size_b bytes)\n";
} else {
  echo "New size: $size_b bytes\n";
}

$fh = fopen($file, "a");
if($fh===false) die("Unable to open file for writing.");

echo "Truncating... ";
if(ftruncate($fh, $size_b)) echo "Done.\n"; else echo "FAILED.\n";

fclose($fh);

?>
