2016-09-22 15:06:37 +08:00
# include "vcpkg_Commands.h"
# include "vcpkg_System.h"
# include "vcpkg.h"
2017-01-13 14:03:57 +08:00
namespace vcpkg : : Commands : : Owns
2016-09-22 15:06:37 +08:00
{
2016-11-08 09:56:40 +08:00
static void search_file ( const vcpkg_paths & paths , const std : : string & file_substr , const StatusParagraphs & status_db )
{
2016-12-02 07: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-08 09:56:40 +08:00
{
2016-12-02 07:37:08 +08:00
const StatusParagraph & pgh = pgh_and_file . pgh ;
2016-11-08 09:56:40 +08:00
2016-12-02 07:37:08 +08:00
for ( const std : : string & file : pgh_and_file . files )
2016-11-08 09:56:40 +08:00
{
2016-12-02 07:37:08 +08:00
if ( file . find ( file_substr ) ! = std : : string : : npos )
2016-11-08 09:56:40 +08:00
{
2016-12-02 07:37:08 +08:00
System : : println ( " %s: %s " , pgh . package . displayname ( ) , file ) ;
2016-11-08 09:56:40 +08:00
}
}
}
}
2017-01-13 14:03:57 +08:00
void perform_and_exit ( const vcpkg_cmd_arguments & args , const vcpkg_paths & paths )
2016-09-22 15:06:37 +08:00
{
2017-01-13 14: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-13 07:03:36 +08:00
args . check_exact_arg_count ( 1 , example ) ;
2016-10-01 02:24:04 +08:00
2016-09-22 15:06:37 +08:00
StatusParagraphs status_db = database_load_check ( paths ) ;
search_file ( paths , args . command_arguments [ 0 ] , status_db ) ;
exit ( EXIT_SUCCESS ) ;
}
}