2017-01-27 12:49:09 -08:00
# include "pch.h"
2016-09-22 00:06:37 -07:00
# include "vcpkg_Commands.h"
# include "vcpkg_System.h"
2017-01-25 19:32:50 -08:00
# include "vcpkglib.h"
2016-09-22 00:06:37 -07:00
2017-01-12 22:03:57 -08:00
namespace vcpkg : : Commands : : Owns
2016-09-22 00:06:37 -07:00
{
2016-11-07 17:56:40 -08:00
static void search_file ( const vcpkg_paths & paths , const std : : string & file_substr , const StatusParagraphs & status_db )
{
2016-12-01 15:37:08 -08:00
const std : : vector < StatusParagraph_and_associated_files > installed_files = get_installed_files ( paths , status_db ) ;
for ( const StatusParagraph_and_associated_files & pgh_and_file : installed_files )
2016-11-07 17:56:40 -08:00
{
2016-12-01 15:37:08 -08:00
const StatusParagraph & pgh = pgh_and_file . pgh ;
2016-11-07 17:56:40 -08:00
2016-12-01 15:37:08 -08:00
for ( const std : : string & file : pgh_and_file . files )
2016-11-07 17:56:40 -08:00
{
2016-12-01 15:37:08 -08:00
if ( file . find ( file_substr ) ! = std : : string : : npos )
2016-11-07 17:56:40 -08:00
{
2016-12-01 15:37:08 -08:00
System : : println ( " %s: %s " , pgh . package . displayname ( ) , file ) ;
2016-11-07 17:56:40 -08:00
}
}
}
}
2017-01-12 22:03:57 -08:00
void perform_and_exit ( const vcpkg_cmd_arguments & args , const vcpkg_paths & paths )
2016-09-22 00:06:37 -07:00
{
2017-01-12 22:03:57 -08:00
static const std : : string example = Strings : : format ( " The argument should be a pattern to search for. %s " , Commands : : Help : : create_example_string ( " owns zlib.dll " ) ) ;
2016-12-12 15:03:36 -08:00
args . check_exact_arg_count ( 1 , example ) ;
2017-02-17 15:38:02 -08:00
args . check_and_get_optional_command_arguments ( { } ) ;
2016-09-30 11:24:04 -07:00
2016-09-22 00:06:37 -07:00
StatusParagraphs status_db = database_load_check ( paths ) ;
search_file ( paths , args . command_arguments [ 0 ] , status_db ) ;
exit ( EXIT_SUCCESS ) ;
}
}