![](https://secure.gravatar.com/avatar/df8330968b6df8cd1c1942c5fb4b720c.jpg?s=120&d=mm&r=g)
Author: jw Date: 2006-04-04 17:39:45 +0200 (Tue, 04 Apr 2006) New Revision: 1137 Modified: tools/prt-get/trunk/ChangeLog tools/prt-get/trunk/src/locker.h tools/prt-get/trunk/src/prtget.cpp Log: prt-get: remove lock on 'prt-get remove' Modified: tools/prt-get/trunk/ChangeLog =================================================================== --- tools/prt-get/trunk/ChangeLog 2006-04-04 14:57:06 UTC (rev 1136) +++ tools/prt-get/trunk/ChangeLog 2006-04-04 15:39:45 UTC (rev 1137) @@ -2,6 +2,7 @@ - Fix compilation on OpenBSD - Show alias info in depends - don't install alias file and deplist +- unlock ports on remove * 0.5.11 29.05.2005 Johannes Winkelmann - add --path to 'ls' Modified: tools/prt-get/trunk/src/locker.h =================================================================== --- tools/prt-get/trunk/src/locker.h 2006-04-04 14:57:06 UTC (rev 1136) +++ tools/prt-get/trunk/src/locker.h 2006-04-04 15:39:45 UTC (rev 1137) @@ -24,6 +24,8 @@ * - marked in prt-get diff * - not shown in prt-get quickdiff * - not updated in prt-get sysup + * + * remember to call store! */ class Locker { @@ -44,7 +46,7 @@ vector<string> m_packages; static const string LOCKER_FILE; static const string LOCKER_FILE_PATH; - + bool m_openFailed; }; Modified: tools/prt-get/trunk/src/prtget.cpp =================================================================== --- tools/prt-get/trunk/src/prtget.cpp 2006-04-04 14:57:06 UTC (rev 1136) +++ tools/prt-get/trunk/src/prtget.cpp 2006-04-04 15:39:45 UTC (rev 1137) @@ -1467,8 +1467,7 @@ list<char*>::const_iterator it = args.begin(); for ( ; it != args.end(); ++it ) { if ( lock ) { - const Package* p = m_repo->getPackage( *it ); - if ( p ) { + if (m_pkgDB->isInstalled( *it )) { if (!m_locker.lock( *it )) { cerr << "Already locked: " << *it << endl; m_returnValue = PG_GENERAL_ERROR; @@ -1476,15 +1475,18 @@ } else { cerr << "Package '" << *it << "' not found" << endl; m_returnValue = PG_GENERAL_ERROR; + return; } } else { if ( !m_locker.unlock( *it ) ) { cerr << "Not locked previously: " << *it << endl; m_returnValue = PG_GENERAL_ERROR; + return; } } } + if (!m_locker.store()) { cerr << "Failed to write lock data" << endl; m_returnValue = PG_GENERAL_ERROR; @@ -1672,6 +1674,10 @@ Process proc(command, args); if (m_parser->isTest() || proc.executeShell() == 0) { removed.push_back(*it); + if (m_locker.isLocked(*it)) { + m_locker.unlock(*it); + m_locker.store(); + } } else { failed.push_back(*it); } @@ -1790,7 +1796,7 @@ list<string>::iterator it = deps.begin(); bool isAlias = false; string aliasName = ""; - + for (; it != deps.end(); ++it) { if ( m_pkgDB->isInstalled( *it, true, &isAlias, &aliasName ) ) { cout << "[i] "; @@ -1828,7 +1834,7 @@ void PrtGet::dumpConfig() { - + cout.setf( ios::left, ios::adjustfield ); cout.width( 20 ); cout.fill( ' ' ); @@ -1837,10 +1843,10 @@ cout.setf( ios::left, ios::adjustfield ); cout.width( 20 ); cout.fill( ' ' ); - cout << "Ext. dep. file: " + cout << "Ext. dep. file: " << Repository::EXTERNAL_DEPENDENCY_FILE << endl; - - + + if (!m_parser->noStdConfig()) { string fName = CONF_FILE; if ( m_parser->isAlternateConfigGiven() ) {