author | llornkcor <llornkcor> | 2002-04-25 13:24:10 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-04-25 13:24:10 (UTC) |
commit | 48dbc8fb69a5d19f466ea757207e42c3861b4dee (patch) (side-by-side diff) | |
tree | de6f9b02ba305545b2b31edf01cabe64f0909d0b | |
parent | aa68d832dbae9ec85ac7f9478bc8b2165e43c969 (diff) | |
download | opie-48dbc8fb69a5d19f466ea757207e42c3861b4dee.zip opie-48dbc8fb69a5d19f466ea757207e42c3861b4dee.tar.gz opie-48dbc8fb69a5d19f466ea757207e42c3861b4dee.tar.bz2 |
added x86 testing stuff changed output to more verbose
-rw-r--r-- | noncore/tools/formatter/formatter.cpp | 125 | ||||
-rw-r--r-- | noncore/tools/formatter/formatter.h | 16 |
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 ¤tText) { 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 |