00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "init.h"
00022
00023 namespace SaX {
00024
00025
00026
00027 SaXInit::SaXInit ( QList<char> opt ) {
00028
00033
00034 mOptions.append ("--quiet");
00035 mOptions.append ("no");
00036 QListIterator<char> it (opt);
00037 for (; it.current(); ++it) {
00038 mOptions.append ( it.current() );
00039 }
00040 }
00041
00042
00043
00044
00045 SaXInit::SaXInit ( void ) {
00046
00050
00051 mOptions.append ("--quiet");
00052 mOptions.append ("no");
00053 }
00054
00055
00056
00057
00058 bool SaXInit::needInit (void) {
00059
00063
00064 if (! setLock()) {
00065 return false;
00066 }
00067 QFileInfo info (CACHE_CONFIG);
00068 if (! info.exists()) {
00069 unsetLock();
00070 return true;
00071 }
00072 unsetLock();
00073 return false;
00074 }
00075
00076
00077
00078
00079 void SaXInit::ignoreProfile (void) {
00080
00084
00085 mOptions.append ("-i");
00086 }
00087
00088
00089
00090
00091 void SaXInit::doInit (void) {
00092
00095
00096 if (! havePrivileges()) {
00097 excPermissionDenied();
00098 qError (errorString(),EXC_PERMISSIONDENIED);
00099 return;
00100 }
00101 if (setenv ("HW_UPDATE","1",1) != 0) {
00102 excInvalidArgument ( errno );
00103 qError (errorString(),EXC_INVALIDARGUMENT);
00104 return;
00105 }
00106 SaXProcessCall* proc = new SaXProcessCall ();
00107 proc -> addArgument ( SAX_INIT );
00108 QListIterator<char> it (mOptions);
00109 for (; it.current(); ++it) {
00110 proc -> addArgument ( it.current() );
00111 }
00112 if ( ! proc -> start() ) {
00113 excProcessFailed();
00114 qError (errorString(),EXC_PROCESSFAILED);
00115 return;
00116 }
00117 }
00118 }