More changes for the removal of the Axis dependencies.
Removed the log files created by the Windows INSTALL. Corrected the "Author" for files created by Greg. Tuned the ATS logs to be less chatty and have a greater backlog. Updated the NOTICES file and added READMEs to provide information about external packages included in the project.
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
* To contact Novell about this file by physical or electronic mail,
|
||||
* you may find current contact information at www.novell.com.
|
||||
*
|
||||
* Author: Juan Carlos Luciani <jluciani@novell.com>
|
||||
* Author: Greg Richardson <grichardson@novell.com>
|
||||
*
|
||||
***********************************************************************/
|
||||
|
||||
@@ -30,347 +30,349 @@ import java.util.*;
|
||||
*/
|
||||
public class DeleteFile
|
||||
{
|
||||
final static int ERROR_NO_ERROR = 0;
|
||||
final static int ERROR_INVALID_NUMBER_OF_PARAMS = -1;
|
||||
final static int ERROR_BAD_FILE_PARAM = -2;
|
||||
final static int ERROR_IO_EXCEPTION = -3;
|
||||
final static int ERROR_FILE_PARAM_REPEATED = -4;
|
||||
final static int ERROR_FILTER_PARAM_REPEATED = -5;
|
||||
final static int ERROR_UNKNOWN_PARAMETER = -6;
|
||||
final static int ERROR_MISSING_FILE_PARAM = -7;
|
||||
final static int ERROR_FILTER_ON_NON_DIRECTORY = -8;
|
||||
final static int ERROR_BAD_PROPERTY_FILE_PARAM = -9;;
|
||||
final static int ERROR_NO_ERROR = 0;
|
||||
final static int ERROR_INVALID_NUMBER_OF_PARAMS = -1;
|
||||
final static int ERROR_BAD_FILE_PARAM = -2;
|
||||
final static int ERROR_IO_EXCEPTION = -3;
|
||||
final static int ERROR_FILE_PARAM_REPEATED = -4;
|
||||
final static int ERROR_FILTER_PARAM_REPEATED = -5;
|
||||
final static int ERROR_UNKNOWN_PARAMETER = -6;
|
||||
final static int ERROR_MISSING_FILE_PARAM = -7;
|
||||
final static int ERROR_FILTER_ON_NON_DIRECTORY = -8;
|
||||
final static int ERROR_BAD_PROPERTY_FILE_PARAM = -9;;
|
||||
|
||||
final static String FILE_KEY = "file=";
|
||||
final static String FILTER_KEY = "filter=";
|
||||
final static String FILE_KEY = "file=";
|
||||
final static String FILTER_KEY = "filter=";
|
||||
|
||||
RandomAccessFile raf;
|
||||
int rc;
|
||||
String sFile;
|
||||
String sFilter;
|
||||
//RandomAccessFile raf;
|
||||
int rc;
|
||||
String sFile;
|
||||
String sFilter;
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
DeleteFile p = new DeleteFile(args);
|
||||
System.exit(p.rc);
|
||||
}
|
||||
public static void main(String[] args)
|
||||
{
|
||||
DeleteFile p = new DeleteFile(args);
|
||||
System.exit(p.rc);
|
||||
}
|
||||
|
||||
DeleteFile(String[] args)
|
||||
{
|
||||
rc = ERROR_NO_ERROR;
|
||||
sFile = null;
|
||||
sFilter = null;
|
||||
DeleteFile(String[] args)
|
||||
{
|
||||
rc = ERROR_NO_ERROR;
|
||||
sFile = null;
|
||||
sFilter = null;
|
||||
|
||||
try
|
||||
{
|
||||
raf = new RandomAccessFile(new File("c:\\test8.log"), "rw");
|
||||
raf.seek(raf.length());
|
||||
try
|
||||
{
|
||||
//raf = new RandomAccessFile(new File("c:\\test8.log"), "rw");
|
||||
//raf.seek(raf.length());
|
||||
|
||||
// Process the arguments
|
||||
if (ERROR_NO_ERROR == (rc = processArgs(args)))
|
||||
{
|
||||
rc = doDelete();
|
||||
}
|
||||
// Process the arguments
|
||||
if (ERROR_NO_ERROR == (rc = processArgs(args)))
|
||||
{
|
||||
rc = doDelete();
|
||||
}
|
||||
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
rc = ERROR_IO_EXCEPTION;
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
log(rc);
|
||||
raf.close();
|
||||
}
|
||||
catch (Exception e1)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
rc = ERROR_IO_EXCEPTION;
|
||||
}
|
||||
finally
|
||||
{
|
||||
try
|
||||
{
|
||||
log(rc);
|
||||
//raf.close();
|
||||
}
|
||||
catch (Exception e1)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int processArgs(String[] argsOld)
|
||||
{
|
||||
String sProperties;
|
||||
File fileInstallDir = null;
|
||||
int iEquals;
|
||||
String sKey;
|
||||
String sValue;
|
||||
int iOld;
|
||||
int i;
|
||||
String args[] = new String[argsOld.length];
|
||||
int iNew;
|
||||
int processArgs(String[] argsOld)
|
||||
{
|
||||
String sProperties;
|
||||
File fileInstallDir = null;
|
||||
int iEquals;
|
||||
String sKey;
|
||||
String sValue;
|
||||
int iOld;
|
||||
int i;
|
||||
String args[] = new String[argsOld.length];
|
||||
int iNew;
|
||||
|
||||
log("Original arg count " + argsOld.length);
|
||||
for (i = 0; i < argsOld.length; i++)
|
||||
{
|
||||
log("Arg " + i + " = " + argsOld[i] + "\r\n");
|
||||
}
|
||||
log("Original arg count " + argsOld.length);
|
||||
for (i = 0; i < argsOld.length; i++)
|
||||
{
|
||||
log("Arg " + i + " = " + argsOld[i] + "\r\n");
|
||||
}
|
||||
|
||||
// Validate the number of parameters
|
||||
if (args.length < 1)
|
||||
{
|
||||
return ERROR_INVALID_NUMBER_OF_PARAMS;
|
||||
}
|
||||
// Validate the number of parameters
|
||||
if (args.length < 1)
|
||||
{
|
||||
return ERROR_INVALID_NUMBER_OF_PARAMS;
|
||||
}
|
||||
|
||||
iNew = -1;
|
||||
for (iOld = 0; iOld < argsOld.length; iOld++)
|
||||
{
|
||||
if (0 <= argsOld[iOld].indexOf("="))
|
||||
{
|
||||
iNew++;
|
||||
args[iNew] = argsOld[iOld];
|
||||
for (i = iOld + 1; i < argsOld.length && (-1 == argsOld[i].indexOf("=")); i++)
|
||||
{
|
||||
args[iNew] += " " + argsOld[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
iNew = -1;
|
||||
for (iOld = 0; iOld < argsOld.length; iOld++)
|
||||
{
|
||||
if (0 <= argsOld[iOld].indexOf("="))
|
||||
{
|
||||
iNew++;
|
||||
args[iNew] = argsOld[iOld];
|
||||
for (i = iOld + 1; i < argsOld.length && (-1 == argsOld[i].indexOf("=")); i++)
|
||||
{
|
||||
args[iNew] += " " + argsOld[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
log("New arg count " + args.length);
|
||||
for (i = 0; i < args.length; i++)
|
||||
{
|
||||
if (null == args[i])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
log("New arg count " + args.length);
|
||||
for (i = 0; i < args.length; i++)
|
||||
{
|
||||
if (null == args[i])
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
log("arg[" + i + "] = " +args[i]);
|
||||
log("arg[" + i + "] = " +args[i]);
|
||||
|
||||
// is this the file to delete param?
|
||||
if (args[i].startsWith(FILE_KEY))
|
||||
{
|
||||
// Have we already processed a file paramter?
|
||||
if (null != sFile)
|
||||
{
|
||||
return ERROR_FILE_PARAM_REPEATED;
|
||||
}
|
||||
// is this the file to delete param?
|
||||
if (args[i].startsWith(FILE_KEY))
|
||||
{
|
||||
// Have we already processed a file paramter?
|
||||
if (null != sFile)
|
||||
{
|
||||
return ERROR_FILE_PARAM_REPEATED;
|
||||
}
|
||||
|
||||
// Make sure it is more the param tag
|
||||
if (args[i].length() <= FILE_KEY.length())
|
||||
{
|
||||
return ERROR_BAD_FILE_PARAM;
|
||||
}
|
||||
// Make sure it is more the param tag
|
||||
if (args[i].length() <= FILE_KEY.length())
|
||||
{
|
||||
return ERROR_BAD_FILE_PARAM;
|
||||
}
|
||||
|
||||
sFile = args[i].substring(FILE_KEY.length()).trim();
|
||||
}
|
||||
sFile = args[i].substring(FILE_KEY.length()).trim();
|
||||
}
|
||||
|
||||
// is this the filter param?
|
||||
else if (args[i].startsWith(FILTER_KEY))
|
||||
{
|
||||
// Have we already processed a filter paramter?
|
||||
if (null != sFilter)
|
||||
{
|
||||
return ERROR_FILTER_PARAM_REPEATED;
|
||||
}
|
||||
// is this the filter param?
|
||||
else if (args[i].startsWith(FILTER_KEY))
|
||||
{
|
||||
// Have we already processed a filter paramter?
|
||||
if (null != sFilter)
|
||||
{
|
||||
return ERROR_FILTER_PARAM_REPEATED;
|
||||
}
|
||||
|
||||
// Make sure it is more than the param tag
|
||||
if (args[i].length() <= FILTER_KEY.length())
|
||||
{
|
||||
return ERROR_BAD_PROPERTY_FILE_PARAM;
|
||||
}
|
||||
// Make sure it is more than the param tag
|
||||
if (args[i].length() <= FILTER_KEY.length())
|
||||
{
|
||||
return ERROR_BAD_PROPERTY_FILE_PARAM;
|
||||
}
|
||||
|
||||
sFilter = args[i].substring(FILTER_KEY.length()).trim();
|
||||
}
|
||||
sFilter = args[i].substring(FILTER_KEY.length()).trim();
|
||||
}
|
||||
|
||||
// Handle additional parameters
|
||||
else
|
||||
{
|
||||
return ERROR_UNKNOWN_PARAMETER;
|
||||
}
|
||||
}
|
||||
// Handle additional parameters
|
||||
else
|
||||
{
|
||||
return ERROR_UNKNOWN_PARAMETER;
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure we got a file
|
||||
if (null == sFile)
|
||||
{
|
||||
return ERROR_MISSING_FILE_PARAM;
|
||||
}
|
||||
// Make sure we got a file
|
||||
if (null == sFile)
|
||||
{
|
||||
return ERROR_MISSING_FILE_PARAM;
|
||||
}
|
||||
|
||||
// Note: the filter parameter is optional, if present the file is assumed to be a directory
|
||||
// Note: the filter parameter is optional, if present the file is assumed to be a directory
|
||||
|
||||
return ERROR_NO_ERROR;
|
||||
}
|
||||
return ERROR_NO_ERROR;
|
||||
}
|
||||
|
||||
int doDelete()
|
||||
{
|
||||
File file = new File(sFile);
|
||||
int doDelete()
|
||||
{
|
||||
File file = new File(sFile);
|
||||
|
||||
log("Attempt to delete: " + sFile);
|
||||
log("Attempt to delete: " + sFile);
|
||||
|
||||
// If the file is already gone - we are happy.
|
||||
if (!file.exists())
|
||||
{
|
||||
log("File did not exist: " + sFile);
|
||||
return ERROR_NO_ERROR;
|
||||
}
|
||||
// If the file is already gone - we are happy.
|
||||
if (!file.exists())
|
||||
{
|
||||
log("File did not exist: " + sFile);
|
||||
return ERROR_NO_ERROR;
|
||||
}
|
||||
|
||||
// If a filter was passed in but the file is not a directory...
|
||||
if (null != sFilter)
|
||||
{
|
||||
log("there is a filter: + sFilter");
|
||||
// If a filter was passed in but the file is not a directory...
|
||||
if (null != sFilter)
|
||||
{
|
||||
log("there is a filter: + sFilter");
|
||||
|
||||
// The file is not a directory - we wont try to apply the filter
|
||||
if (!file.isDirectory())
|
||||
{
|
||||
log("file is not a directory");
|
||||
return ERROR_FILTER_ON_NON_DIRECTORY;
|
||||
}
|
||||
// The file is not a directory - we wont try to apply the filter
|
||||
if (!file.isDirectory())
|
||||
{
|
||||
log("file is not a directory");
|
||||
return ERROR_FILTER_ON_NON_DIRECTORY;
|
||||
}
|
||||
|
||||
// The file is a directory
|
||||
else
|
||||
{
|
||||
log("file is a directory");
|
||||
// Delete the children that match the template
|
||||
deleteFiles(file);
|
||||
// The file is a directory
|
||||
else
|
||||
{
|
||||
log("file is a directory");
|
||||
// Delete the children that match the template
|
||||
deleteFiles(file);
|
||||
|
||||
// Attempt to delete the directory
|
||||
deleteDirectory(file);
|
||||
}
|
||||
}
|
||||
// Attempt to delete the directory
|
||||
deleteDirectory(file);
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
if (!file.isDirectory())
|
||||
{
|
||||
log("Delete file: " + sFile);
|
||||
file.delete();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!file.isDirectory())
|
||||
{
|
||||
log("Delete file: " + sFile);
|
||||
file.delete();
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
deleteDirectory(file);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
deleteDirectory(file);
|
||||
}
|
||||
}
|
||||
|
||||
return ERROR_NO_ERROR;
|
||||
}
|
||||
return ERROR_NO_ERROR;
|
||||
}
|
||||
|
||||
void deleteFiles(File file)
|
||||
{
|
||||
File fileDelete;
|
||||
int i;
|
||||
void deleteFiles(File file)
|
||||
{
|
||||
File fileDelete;
|
||||
int i;
|
||||
|
||||
log("attempting to delete file");
|
||||
log("attempting to delete file");
|
||||
|
||||
// Get the children of this directory
|
||||
File[] rgFile = file.listFiles(
|
||||
new FileFilter()
|
||||
{
|
||||
public boolean accept(File f)
|
||||
{
|
||||
if (null == sFilter) return true;
|
||||
log("file " + f.getName() + " matches filter " + sFilter + " : " + (-1 != f.getName().indexOf(sFilter))) ;
|
||||
return (-1 != f.getName().indexOf(sFilter));
|
||||
}
|
||||
});
|
||||
// Get the children of this directory
|
||||
File[] rgFile = file.listFiles(
|
||||
new FileFilter()
|
||||
{
|
||||
public boolean accept(File f)
|
||||
{
|
||||
if (null == sFilter) return true;
|
||||
log("file " + f.getName() + " matches filter " + sFilter + " : " + (-1 != f.getName().indexOf(sFilter))) ;
|
||||
return (-1 != f.getName().indexOf(sFilter));
|
||||
}
|
||||
});
|
||||
|
||||
log(file.getAbsolutePath() + " has " + rgFile.length + " children that match the filter: " + sFilter);
|
||||
log(file.getAbsolutePath() + " has " + rgFile.length + " children that match the filter: " + sFilter);
|
||||
|
||||
// Attempt to delete each child file
|
||||
for (i = 0; i < rgFile.length; i++)
|
||||
{
|
||||
if (rgFile[i].isDirectory())
|
||||
{
|
||||
deleteDirectory(rgFile[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
log("Delete file: " + rgFile[i].getAbsolutePath());
|
||||
rgFile[i].delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
// Attempt to delete each child file
|
||||
for (i = 0; i < rgFile.length; i++)
|
||||
{
|
||||
if (rgFile[i].isDirectory())
|
||||
{
|
||||
deleteDirectory(rgFile[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
log("Delete file: " + rgFile[i].getAbsolutePath());
|
||||
rgFile[i].delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void deleteDirectory(File file)
|
||||
{
|
||||
File fileDelete;
|
||||
int i;
|
||||
void deleteDirectory(File file)
|
||||
{
|
||||
File fileDelete;
|
||||
int i;
|
||||
|
||||
log("Delete directory: " + file.getAbsolutePath());
|
||||
log("Delete directory: " + file.getAbsolutePath());
|
||||
|
||||
// Get the children of this directory
|
||||
File[] rgFile = file.listFiles();
|
||||
// Get the children of this directory
|
||||
File[] rgFile = file.listFiles();
|
||||
|
||||
log(file.getAbsolutePath() + " has " + rgFile.length + " children");
|
||||
log(file.getAbsolutePath() + " has " + rgFile.length + " children");
|
||||
|
||||
// Delete empty child directories
|
||||
for (i = 0; i < rgFile.length; i++)
|
||||
{
|
||||
if (rgFile[i].isDirectory())
|
||||
{
|
||||
deleteDirectory(rgFile[i]);
|
||||
}
|
||||
}
|
||||
// Delete empty child directories
|
||||
for (i = 0; i < rgFile.length; i++)
|
||||
{
|
||||
if (rgFile[i].isDirectory())
|
||||
{
|
||||
deleteDirectory(rgFile[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// Delete this directory if it is empty
|
||||
rgFile = file.listFiles();
|
||||
if (rgFile.length == 0)
|
||||
{
|
||||
log("Delete file: " + file.getAbsolutePath());
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
// Delete this directory if it is empty
|
||||
rgFile = file.listFiles();
|
||||
if (rgFile.length == 0)
|
||||
{
|
||||
log("Delete file: " + file.getAbsolutePath());
|
||||
file.delete();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void log(int err)
|
||||
{
|
||||
log(err, null);
|
||||
}
|
||||
void log(int err)
|
||||
{
|
||||
log(err, null);
|
||||
}
|
||||
|
||||
void log(int err, String s)
|
||||
{
|
||||
String sMessage = "";
|
||||
void log(int err, String s)
|
||||
{
|
||||
String sMessage = "";
|
||||
|
||||
switch (err)
|
||||
{
|
||||
case ERROR_NO_ERROR:
|
||||
sMessage = "No error";
|
||||
break;
|
||||
case ERROR_INVALID_NUMBER_OF_PARAMS:
|
||||
sMessage = "Invalid number of parameters: 1 expected";
|
||||
break;
|
||||
case ERROR_BAD_FILE_PARAM:
|
||||
sMessage = "Bad file parameter";
|
||||
break;
|
||||
case ERROR_FILE_PARAM_REPEATED:
|
||||
sMessage = "File parameter repeated";
|
||||
break;
|
||||
case ERROR_FILTER_PARAM_REPEATED:
|
||||
sMessage = "Filter parameter repeated";
|
||||
break;
|
||||
case ERROR_UNKNOWN_PARAMETER:
|
||||
sMessage = "Unknown parameter: ";
|
||||
break;
|
||||
case ERROR_MISSING_FILE_PARAM:
|
||||
sMessage = "Missing file parameter";
|
||||
break;
|
||||
case ERROR_FILTER_ON_NON_DIRECTORY:
|
||||
sMessage = "Filter parameter of non-directory file";
|
||||
break;
|
||||
case ERROR_BAD_PROPERTY_FILE_PARAM:
|
||||
sMessage = "Bad property file parameter";
|
||||
break;
|
||||
default:
|
||||
sMessage = "Unknown error: " + err;
|
||||
break;
|
||||
}
|
||||
switch (err)
|
||||
{
|
||||
case ERROR_NO_ERROR:
|
||||
sMessage = "No error";
|
||||
break;
|
||||
case ERROR_INVALID_NUMBER_OF_PARAMS:
|
||||
sMessage = "Invalid number of parameters: 1 expected";
|
||||
break;
|
||||
case ERROR_BAD_FILE_PARAM:
|
||||
sMessage = "Bad file parameter";
|
||||
break;
|
||||
case ERROR_FILE_PARAM_REPEATED:
|
||||
sMessage = "File parameter repeated";
|
||||
break;
|
||||
case ERROR_FILTER_PARAM_REPEATED:
|
||||
sMessage = "Filter parameter repeated";
|
||||
break;
|
||||
case ERROR_UNKNOWN_PARAMETER:
|
||||
sMessage = "Unknown parameter: ";
|
||||
break;
|
||||
case ERROR_MISSING_FILE_PARAM:
|
||||
sMessage = "Missing file parameter";
|
||||
break;
|
||||
case ERROR_FILTER_ON_NON_DIRECTORY:
|
||||
sMessage = "Filter parameter of non-directory file";
|
||||
break;
|
||||
case ERROR_BAD_PROPERTY_FILE_PARAM:
|
||||
sMessage = "Bad property file parameter";
|
||||
break;
|
||||
default:
|
||||
sMessage = "Unknown error: " + err;
|
||||
break;
|
||||
}
|
||||
|
||||
if (null != s)
|
||||
{
|
||||
sMessage = sMessage + s;
|
||||
}
|
||||
log(sMessage);
|
||||
}
|
||||
if (null != s)
|
||||
{
|
||||
sMessage = sMessage + s;
|
||||
}
|
||||
log(sMessage);
|
||||
}
|
||||
|
||||
void log(String s)
|
||||
{
|
||||
try
|
||||
{
|
||||
raf.writeUTF(this.getClass().getName() + ": " + s + "\r\n");
|
||||
}
|
||||
catch (IOException ioe)
|
||||
{
|
||||
}
|
||||
}
|
||||
void log(String s)
|
||||
{
|
||||
/*
|
||||
try
|
||||
{
|
||||
raf.writeUTF(this.getClass().getName() + ": " + s + "\r\n");
|
||||
}
|
||||
catch (IOException ioe)
|
||||
{
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user