summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2002-04-25 13:24:10 (UTC)
committer llornkcor <llornkcor>2002-04-25 13:24:10 (UTC)
commit48dbc8fb69a5d19f466ea757207e42c3861b4dee (patch) (side-by-side diff)
treede6f9b02ba305545b2b31edf01cabe64f0909d0b
parentaa68d832dbae9ec85ac7f9478bc8b2165e43c969 (diff)
downloadopie-48dbc8fb69a5d19f466ea757207e42c3861b4dee.zip
opie-48dbc8fb69a5d19f466ea757207e42c3861b4dee.tar.gz
opie-48dbc8fb69a5d19f466ea757207e42c3861b4dee.tar.bz2
added x86 testing stuff changed output to more verbose
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/formatter/formatter.cpp125
-rw-r--r--noncore/tools/formatter/formatter.h16
2 files changed, 108 insertions, 33 deletions
diff --git a/noncore/tools/formatter/formatter.cpp b/noncore/tools/formatter/formatter.cpp
index 8c8ef2a..0dd42c8 100644
--- a/noncore/tools/formatter/formatter.cpp
+++ b/noncore/tools/formatter/formatter.cpp
@@ -41,16 +41,18 @@
#include <qlayout.h>
#include <qvariant.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/vfs.h>
#include <mntent.h>
+#include <string.h>
+#include <errno.h>
#define BLANK ' '
#define DELIMITER '#'
/*
Blah blah blah blah */
FormatterApp::FormatterApp( QWidget* parent, const char* name, bool modal, WFlags fl )
: QMainWindow( parent, name, fl )
@@ -170,98 +172,149 @@ FormatterApp::~FormatterApp()
}
void FormatterApp::doFormat() {
int err=0;
Output *outDlg;
QString umountS, remountS;
QString text = storageComboBox->currentText();
QString currentText = storageComboBox->currentText();
- QString cmd = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4);
+ QString cmd;
+ QString diskDevice = currentText.right( currentText.length() - currentText.find(" -> ",0,TRUE) - 4);
+ QString diskName = currentText.left(currentText.find(" -> ",0,TRUE));
QString fs = fileSystemsCombo->currentText();
-
+
+#if defined(QT_QWS_IPAQ) || defined(QT_QWS_EBX) // lets test on something cheap
+#else
+ currentText = diskDevice = "/dev/fd0";
+ umountS = "umount -v /floppy 2>&1";
+ remountS = "mount -v /floppy 2>&1";
+#endif
+
if( currentText.find("CF",0,TRUE) != -1) {
- umountS = "/sbin/cardctl eject";
- remountS = "/sbin/cardctl insert";
+ umountS = "umount ";
+ remountS = "mount ";
+
+// umountS = "/sbin/cardctl eject";
+// remountS = "/sbin/cardctl insert";
}
if( currentText.find("SD",0,TRUE) != -1) {
- umountS = "/etc/sdcontrol compeject";
- remountS = "/etc/sdcontrol insert";
+ umountS = "umount ";
+ remountS = "mount ";
+// umountS = "/etc/sdcontrol compeject";
+// remountS = "/etc/sdcontrol insert";
}
- switch ( QMessageBox::warning(this,tr("Format?!?"),tr("Really format\n") + currentText +
- tr("\nwith ") + fs + tr(" filesystem?!?"),tr("Yes"),tr("No"),0,1,1) ) {
+ switch ( QMessageBox::warning(this,tr("Format?!?"),tr("Really format\n") +diskName+" "+ currentText +
+ tr("\nwith ") + fs + tr(" filesystem?!?\nYou will loose all data!!"),tr("Yes"),tr("No"),0,1,1) ) {
case 0: {
if(fs == "vfat")
- cmd = "mkdosfs " + cmd;
+ cmd = "mkdosfs -v " + diskDevice+" 2>&1";
else if(fs == "ext2")
- cmd = "mke2fs " + cmd;
+ cmd = "mke2fs -v " + diskDevice+" 2>&1";
else {
QMessageBox::warning(this, tr("Formatter"),tr("Could not format.\nUnknown type"), tr("Ok"));
break;
}
// cmd = "ls -l";
outDlg = new Output(this, tr("Formatter Output"),FALSE);
outDlg->showMaximized();
outDlg->show();
qApp->processEvents();
FILE *fp;
char line[130];
- outDlg->OutputEdit->append( tr("Trying to eject.") + currentText );
+ outDlg->OutputEdit->append( tr("Trying to umount.") + currentText );
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+
sleep(1);
- fp = popen( (const char *) umountS, "r");
+ qDebug("Command is "+umountS);
+ fp = popen( (const char *) umountS, "r");
+ qDebug("%d", fp);
if ( !fp ) {
- qDebug("Could not execute '" + umountS + "'! err=%d", fp);
- QMessageBox::warning( this, tr("CardMonitor"), tr("Card eject failed!"), tr("&OK") );
+ qDebug("Could not execute '" + umountS + "'! err=%d\n" +(QString)strerror(errno), err);
+ QMessageBox::warning( this, tr("Formatter"), tr("umount failed!"), tr("&OK") );
pclose(fp);
return;
} else {
- outDlg->OutputEdit->append( currentText + tr("\nhas been successfully ejected."));
-
+// outDlg->OutputEdit->append( currentText + tr("\nhas been successfully umounted."));
+// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
while ( fgets( line, sizeof line, fp)) {
- outDlg->OutputEdit->append(line);
+ if( ((QString)line).find("busy",0,TRUE) != -1) {
+ qDebug("Could not find '" + umountS);
+ QMessageBox::warning( this, tr("Formatter"), tr("Could not umount.\nDevice is busy!"), tr("&OK") );
+ pclose(fp);
+ return;
+ } else {
+ QString lineStr = line;
+ lineStr=lineStr.left(lineStr.length()-1);
+ outDlg->OutputEdit->append(lineStr);
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+ }
}
}
pclose(fp);
-// err = system( (const char *) umountS);
qDebug("Command would be: "+cmd);
outDlg->OutputEdit->append( tr("Trying to format.") );
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
fp = popen( (const char *) cmd, "r");
while ( fgets( line, sizeof line, fp)) {
- outDlg->OutputEdit->append(line);
+ if( ((QString)line).find("No such device",0,TRUE) != -1) {
+ qDebug("No such device '" + umountS);
+ QMessageBox::warning( this, tr("Formatter"), tr("No such device!"), tr("&OK") );
+ pclose(fp);
+// outDlg->OutputEdit->append("No such device");
+// outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+ return;
+ } else {
+ QString lineStr = line;
+ lineStr=lineStr.left(lineStr.length()-1);
+ outDlg->OutputEdit->append(lineStr);
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+ }
}
outDlg->OutputEdit->append( currentText + tr("\nhas been successfully formatted."));
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
pclose(fp);
- outDlg->OutputEdit->append( tr("Trying to insert.") + currentText );
+ outDlg->OutputEdit->append( tr("Trying to mount.") + currentText );
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
fp = popen( (const char *) remountS, "r");
if ( !fp) {
- qDebug("Could not execute '" + remountS + "'! err=%d", err);
- QMessageBox::warning( this, tr("Formatter"), tr("Card insert failed!"), tr("&OK") );
+ qDebug("Could not execute '" + remountS + "'! err=%d\n" +(QString)strerror(errno), err);
+ QMessageBox::warning( this, tr("Formatter"), tr("Card mount failed!"), tr("&OK") );
} else {
- outDlg->OutputEdit->append( currentText + tr("\nhas been successfully inserted."));
+ outDlg->OutputEdit->append( currentText + tr("\nhas been successfully mounted."));
while ( fgets( line, sizeof line, fp)) {
- outDlg->OutputEdit->append(line);
+ QString lineStr = line;
+ lineStr=lineStr.left(lineStr.length()-1);
+ outDlg->OutputEdit->append(lineStr);
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
}
}
pclose(fp);
sleep(1);
outDlg->OutputEdit->append(tr("You can now close the output window."));
- outDlg->close();
- if(outDlg)
- delete outDlg;
+ outDlg->OutputEdit->setCursorPosition(outDlg->OutputEdit->numLines() + 1,0,FALSE);
+// outDlg->close();
+// if(outDlg)
+// delete outDlg;
}
break;
};
}
+bool FormatterApp::doFdisk() {
+ return FALSE;
+
+}
+
void FormatterApp::fillCombos() {
StorageInfo storageInfo;
const QList<FileSystem> &fs = storageInfo.fileSystems();
QListIterator<FileSystem> it ( fs );
QString storage;
for( ; it.current(); ++it ){
const QString name = (*it)->name();
@@ -401,19 +454,35 @@ QString FormatterApp::getFileSystemType(const QString &currentText) {
if( temp.find( currentText,0,TRUE) != -1) {
return temp.right( temp.length() - temp.find("::",0,TRUE) - 2);
// qDebug(fsType);
}
}
return "";
}
-void FormatterApp::doFsck() {
+bool FormatterApp::doFsck() {
QString selectedDevice = deviceComboBox->currentText();
QString fsType = getFileSystemType((const QString &)selectedDevice);
QString cmd;
qDebug( selectedDevice +" "+ fsType);
if(fsType == "vfat") cmd = "dosfsck -vy ";
if(fsType == "ext2") cmd = "e2fsck -cpvy ";
cmd += selectedDevice;
+
+ return FALSE;
+}
+
+bool FormatterApp::doFsckCheck() {
+ return FALSE;
+}
+
+int FormatterApp::formatCheck(const QString &deviceStr) {
+
+ return -1;
+}
+
+int FormatterApp::runCommand(const QString &command) {
+
+ return -1;
}
diff --git a/noncore/tools/formatter/formatter.h b/noncore/tools/formatter/formatter.h
index a566ec0..871054d 100644
--- a/noncore/tools/formatter/formatter.h
+++ b/noncore/tools/formatter/formatter.h
@@ -38,22 +38,28 @@ public:
QLabel *TextLabel1, *TextLabel2, *TextLabel3, *TextLabel4, *TextLabel5;
QComboBox *storageComboBox, *fileSystemsCombo, *deviceComboBox;
QPushButton *formatPushButton, *editPushButton, *fsckButton;
QLineEdit* mountPointLineEdit;
QStringList fileSystemTypeList, fsList;
protected:
QGridLayout *FormatterAppLayout, *tabLayout, *tabLayout_2;
QString getFileSystemType(const QString &);
+
+ void fillCombos();
+ void parsetab();
+ bool doFdisk();
+ int formatCheck(const QString &);
+ int runCommand(const QString &);
protected slots:
- void doFormat();
- void fillCombos();
void cleanUp();
+ void doFormat();
+ void editFstab();
+ bool doFsck();
+ bool doFsckCheck();
+
void fsComboSelected(int);
void storageComboSelected(int );
void deviceComboSelected(int );
- void editFstab();
- void parsetab();
- void doFsck();
};
#endif // FORMATTERAPP_H