# Path: auto_forensicate/hostinfo.py
# def ReadDMI(name):
# def GetChassisSerial():
# def GetMachineUUID():
# def GetRandomUUID():
# def GetIdentifier():
# def GetUdevadmInfo(device_name):
# def GetTime():
# def Which(cmd):
# 
# Path: auto_forensicate/recipes/base.py
# class BaseArtifact(object):
# class StringArtifact(BaseArtifact):
# class FileArtifact(BaseArtifact):
# class ProcessOutputArtifact(BaseArtifact):
# class BaseRecipe(object):
#   def __init__(self, name):
#   def _GetStream(self):
#   def CloseStream(self):
#   def OpenStream(self):
#   def size(self):
#   def readable_size(self):
#   def __init__(self, path, string_content):
#   def _GetStream(self):
#   def CloseStream(self):
#   def __init__(self, path):
#   def _GetStream(self):
#   def __init__(self, command, path, ignore_failure=False):
#   def _RunCommand(self):
#   def _GetStream(self):
#   def __init__(self, name, options=None):
#   def __enter__(self):
#   def __exit__(self, exc_type, exc_value, traceback):
#   def GetArtifacts(self):


from auto_forensicate import hostinfo
from auto_forensicate.recipes import base
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Handles the acquisition of the system's information."""

from __future__ import unicode_literals



class SysinfoRecipe(base.BaseRecipe):
  """The SysinfoRecipe class."""

  _SYSTEM_PROFILER_CMD = [
      '/usr/sbin/system_profiler', 'SPHardwareDataType', 'SPSoftwareDataType']
  _NETWORKSETUP_CMD = [
      '/usr/sbin/networksetup', '-listallhardwareports']

  def GetArtifacts(self):
    """Provides a list of Artifacts to upload.

    Returns:
      list(BaseArtifact): the artifacts to copy.
    """
    artifacts_list = []
    if self._platform == 'darwin':
      # TODO: have hostinfo.Which work on darwin
      artifacts_list.append(
          base.ProcessOutputArtifact(
              self._SYSTEM_PROFILER_CMD, 'system_info.txt'))
      artifacts_list.append(

# Path: auto_forensicate/hostinfo.py
# def ReadDMI(name):
# def GetChassisSerial():
# def GetMachineUUID():
# def GetRandomUUID():
# def GetIdentifier():
# def GetUdevadmInfo(device_name):
# def GetTime():
# def Which(cmd):
# 
# Path: auto_forensicate/recipes/base.py
# class BaseArtifact(object):
# class StringArtifact(BaseArtifact):
# class FileArtifact(BaseArtifact):
# class ProcessOutputArtifact(BaseArtifact):
# class BaseRecipe(object):
#   def __init__(self, name):
#   def _GetStream(self):
#   def CloseStream(self):
#   def OpenStream(self):
#   def size(self):
#   def readable_size(self):
#   def __init__(self, path, string_content):
#   def _GetStream(self):
#   def CloseStream(self):
#   def __init__(self, path):
#   def _GetStream(self):
#   def __init__(self, command, path, ignore_failure=False):
#   def _RunCommand(self):
#   def _GetStream(self):
#   def __init__(self, name, options=None):
#   def __enter__(self):
#   def __exit__(self, exc_type, exc_value, traceback):
#   def GetArtifacts(self):


# Path: auto_forensicate/recipes/sysinfo.py
from auto_forensicate import hostinfo
from auto_forensicate.recipes import base

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Handles the acquisition of the system's information."""

from __future__ import unicode_literals



class SysinfoRecipe(base.BaseRecipe):
  """The SysinfoRecipe class."""

  _SYSTEM_PROFILER_CMD = [
      '/usr/sbin/system_profiler', 'SPHardwareDataType', 'SPSoftwareDataType']
  _NETWORKSETUP_CMD = [
      '/usr/sbin/networksetup', '-listallhardwareports']

  def GetArtifacts(self):
    """Provides a list of Artifacts to upload.

    Returns:
      list(BaseArtifact): the artifacts to copy.
    """
    artifacts_list = []
    if self._platform == 'darwin':
      # TODO: have hostinfo.Which work on darwin
      artifacts_list.append(
          base.ProcessOutputArtifact(
              self._SYSTEM_PROFILER_CMD, 'system_info.txt'))
      artifacts_list.append(

          base.ProcessOutputArtifact(