in modules/compiler/src/java/flex2/tools/Fcsh.java [110:325]
private static void process(String s)
{
LocalizationManager l10n = ThreadLocalToolkit.getLocalizationManager();
if (s.startsWith("mxmlc"))
{
StringTokenizer t = new StringTokenizer(s.substring("mxmlc".length()).trim(), " ");
String[] args = new String[t.countTokens()];
for (int i = 0; t.hasMoreTokens(); i++)
{
args[i] = t.nextToken();
}
if (args.length == 1)
{
try
{
int id = Integer.parseInt(args[0]);
Target target = targets.get("" + id);
if (target == null)
{
ThreadLocalToolkit.logInfo(l10n.getLocalizedTextString(new TargetNotFound("" + id)));
}
else
{
mxmlc(target.args, id);
}
}
catch (NumberFormatException ex)
{
ThreadLocalToolkit.logInfo(l10n.getLocalizedTextString(new AssignTargetID(counter)));
mxmlc(args, counter++);
}
}
else
{
ThreadLocalToolkit.logInfo(l10n.getLocalizedTextString(new AssignTargetID(counter)));
mxmlc(args, counter++);
}
}
else if (s.startsWith("compc"))
{
StringTokenizer t = new StringTokenizer(s.substring("compc".length()).trim(), " ");
String[] args = new String[t.countTokens()];
for (int i = 0; t.hasMoreTokens(); i++)
{
args[i] = t.nextToken();
}
if (args.length == 1)
{
try
{
int id = Integer.parseInt(args[0]);
Target target = targets.get("" + id);
if (target == null)
{
ThreadLocalToolkit.logInfo(l10n.getLocalizedTextString(new TargetNotFound("" + id)));
}
else
{
compc(target.args, id);
}
}
catch (NumberFormatException ex)
{
ThreadLocalToolkit.logInfo(l10n.getLocalizedTextString(new AssignTargetID(counter)));
compc(args, counter++);
}
}
else
{
ThreadLocalToolkit.logInfo(l10n.getLocalizedTextString(new AssignTargetID(counter)));
compc(args, counter++);
}
}
else if (s.startsWith("compile"))
{
String id = s.substring("compile".length()).trim();
if (targets.containsKey(id))
{
compile(id);
if (ThreadLocalToolkit.errorCount() == 0)
{
link(id);
}
}
else
{
ThreadLocalToolkit.logInfo(l10n.getLocalizedTextString(new TargetNotFound(id)));
}
}
else if (s.startsWith("clear"))
{
String id = s.substring("clear".length()).trim();
if (id.length() == 0)
{
HashSet<String> keys = new HashSet<String>(targets.keySet());
for (Iterator<String> i = keys.iterator(); i.hasNext();)
{
clear(i.next());
}
}
else if (targets.containsKey(id))
{
clear(id);
}
else
{
ThreadLocalToolkit.logInfo(l10n.getLocalizedTextString(new TargetNotFound(id)));
}
}
else if (s.startsWith("info"))
{
String id = s.substring("info".length()).trim();
if (id.length() == 0)
{
HashSet<String> keys = new HashSet<String>(targets.keySet());
for (Iterator<String> i = keys.iterator(); i.hasNext();)
{
info(i.next());
}
}
else if (targets.containsKey(id))
{
info(id);
}
else
{
ThreadLocalToolkit.logInfo(l10n.getLocalizedTextString(new TargetNotFound(id)));
}
}
else if (s.startsWith("touch"))
{
String args = s.substring("touch".length()).trim();
StringTokenizer stok = new StringTokenizer(args);
while (stok.hasMoreTokens())
{
String f = stok.nextToken();
if (!new File(f).canWrite())
{
ThreadLocalToolkit.logInfo("touch: cannot write " + f);
}
else
{
new File(f).setLastModified(System.currentTimeMillis());
}
}
}
else if (s.startsWith("cp"))
{
String args = s.substring("cp".length()).trim();
StringTokenizer stok = new StringTokenizer(args);
if (stok.countTokens() != 2)
{
ThreadLocalToolkit.logInfo("cp fileFrom fileTo");
}
else
{
String copyFrom = stok.nextToken();
String copyTo = stok.nextToken();
try
{
FileUtil.writeBinaryFile(new File(copyTo), FileUtil.openStream(copyFrom));
}
catch (IOException e)
{
ThreadLocalToolkit.logInfo(e.getMessage());
}
}
}
else if (s.startsWith("mv"))
{
String args = s.substring("mv".length()).trim();
StringTokenizer stok = new StringTokenizer(args);
if (stok.countTokens() != 2)
{
ThreadLocalToolkit.logInfo("mv fileFrom fileTo");
}
else
{
String moveFrom = stok.nextToken();
String moveTo = stok.nextToken();
new File(moveFrom).renameTo(new File(moveTo));
}
}
else if (s.startsWith("rm"))
{
String args = s.substring("rm".length()).trim();
StringTokenizer stok = new StringTokenizer(args);
if (stok.countTokens() != 1)
{
ThreadLocalToolkit.logInfo("rm file");
}
else
{
String rmFile=stok.nextToken();
new File(rmFile).delete();
}
}
else if (s.equals("quit"))
{
Set<String> names = new HashSet<String>(targets.keySet());
for (Iterator<String> i = names.iterator(); i.hasNext();)
{
process("clear " + i.next());
}
exit = true;
}
else
{
cmdList();
}
}