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
{
2017-04-03 16:29:11 -07:00
static void search_file ( const VcpkgPaths & paths , const std : : string & file_substr , const StatusParagraphs & status_db )
2016-11-07 17:56:40 -08:00
{
2017-04-03 16:32:14 -07:00
const std : : vector < StatusParagraphAndAssociatedFiles > installed_files = get_installed_files ( paths , status_db ) ;
for ( const StatusParagraphAndAssociatedFiles & 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-04-03 16:29:11 -07:00
void perform_and_exit ( const VcpkgCmdArguments & args , const VcpkgPaths & 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 ) ;
2017-03-22 17:45:39 -07:00
Checks : : exit_success ( VCPKG_LINE_INFO ) ;
2016-09-22 00:06:37 -07:00
}
}