@ -898,20 +898,10 @@ static status_t delete_dir_contents(DIR* dir) {
}
status_t DeleteDirContentsAndDir ( const std : : string & pathname ) {
// Shamelessly borrowed from android::installd
std : : unique_ptr < DIR , decltype ( & closedir ) > dirp ( opendir ( pathname . c_str ( ) ) , closedir ) ;
if ( ! dirp ) {
if ( errno = = ENOENT ) {
return OK ;
}
PLOG ( ERROR ) < < " Failed to opendir " < < pathname ;
return - errno ;
}
status_t res = delete_dir_contents ( dirp . get ( ) ) ;
status_t res = DeleteDirContents ( pathname ) ;
if ( res < 0 ) {
return res ;
}
dirp . reset ( nullptr ) ;
if ( rmdir ( pathname . c_str ( ) ) ! = 0 ) {
PLOG ( ERROR ) < < " rmdir failed on " < < pathname ;
return - errno ;
@ -920,6 +910,19 @@ status_t DeleteDirContentsAndDir(const std::string& pathname) {
return OK ;
}
status_t DeleteDirContents ( const std : : string & pathname ) {
// Shamelessly borrowed from android::installd
std : : unique_ptr < DIR , decltype ( & closedir ) > dirp ( opendir ( pathname . c_str ( ) ) , closedir ) ;
if ( ! dirp ) {
if ( errno = = ENOENT ) {
return OK ;
}
PLOG ( ERROR ) < < " Failed to opendir " < < pathname ;
return - errno ;
}
return delete_dir_contents ( dirp . get ( ) ) ;
}
// TODO(118708649): fix duplication with init/util.h
status_t WaitForFile ( const char * filename , std : : chrono : : nanoseconds timeout ) {
android : : base : : Timer t ;