# Copyright 2016 Casey Jaymes

# This file is part of PySCAP.
#
# PySCAP is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# PySCAP is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with PySCAP.  If not, see <http://www.gnu.org/licenses/>.

import logging
import pprint
import re

from scap.Collector import Collector
from scap.model.cpe_matching_2_3.CPE import CPE

logger = logging.getLogger(__name__)
class CpeCollector(Collector):
    def collect(self):
        self.host.facts['cpe'] = {'os': [], 'application': [], 'hardware': []}

        # hardware
        from scap.collector.windows.WmicPnPEntityCollector import WmicPnPEntityCollector
        WmicPnPEntityCollector(self.host, {}).collect()

        # os
        from scap.collector.windows.SystemInfoCollector import SystemInfoCollector
        SystemInfoCollector(self.host, {}).collect()

        # application
        from scap.collector.windows.RegUninstallCollector import RegUninstallCollector
        RegUninstallCollector(self.host, {}).collect()

        for cpe_part in self.host.facts['cpe']:
            for cpe in self.host.facts['cpe'][cpe_part]:
                logger.debug(cpe.to_uri_string())
