05-01-2014, 10:07 AM
(This post was last modified: 05-01-2014, 10:07 AM by Deak Phreak.)
So far my built-in function to my custom app is working fine. Here is the code in C# that I made to do this.
Code:
private void btn_dumpCart(object sender, EventArgs e)
{
bool found = false;
string cartFolder = "";
string filePath = "";
string[] dirList = my_dftp.dir_list("/LF/Cart");
foreach (string s in dirList)
{
string[] tmp = s.Split(' ');
filePath = tmp[tmp.Length - 1].Trim();
if (filePath != "./" && filePath != "../" && filePath != "lib/" && !string.IsNullOrEmpty(filePath) && filePath.Length < 30)
{
if (cartFolder == "")
{
found = true;
cartFolder = filePath.Replace("/", "");
}
else
{
found = false;
}
}
}
if (found)
{
string metaP = "";
string metaN = "";
string meta = System.Text.Encoding.ASCII.GetString(my_dftp.cat("/LF/Cart/" + cartFolder + "/meta.inf"));
string[] metainf = meta.Split('\n');
foreach (string s in metainf)
{
if (s.StartsWith("PackageID=\""))
{
metaP = s.Replace("PackageID=", "");
metaP = metaP.Replace("\"", "");
}
if (s.StartsWith("Name=\""))
{
metaN = s.Replace("Name=", "");
metaN = metaN.Replace("\"", "");
}
}
if (!string.IsNullOrEmpty(metaP) && !string.IsNullOrEmpty(metaN))
{
UpdateLog("Found cart:" + metaN);
UpdateLog("Dumping cart...");
my_dftp.run_buffer("#!/bin/sh\nrm -rf /LF/Bulk/ProgramFiles/mytempdir\n");
Thread.Sleep(500);
my_dftp.mkdir(@"/LF/Bulk/ProgramFiles/mytempdir");
Thread.Sleep(500);
my_dftp.run_buffer("#!/bin/sh\ncp -r /LF/Cart/"+cartFolder+"/* /LF/Bulk/ProgramFiles/mytempdir\n");
Thread.Sleep(500);
string runstring = string.Format("#!/bin/sh\nmv /LF/Bulk/ProgramFiles/mytempdir /LF/Bulk/ProgramFiles/{0}\n", metaP);
my_dftp.run_buffer(runstring);
UpdateLog("Dumped cart to device");
}
else
{
UpdateLog("Could not parse cart info");
}
}
else
{
UpdateLog("Could not find cart");
}
}