Config/Install/Deploy/Run:
   target host
   remote_cmd_prefix - ssh user@bla sudo foo?????
   remote_cp_prefix - cp statt scp oder so
   debug -> env für alles += __debug
Storage/Metaobject/Tree? == Path?
   base_dir?
   nimmt objekte
   Sammelt Objekte
   Ist prepared hier?
Object
   "Infos" / Datenhalde
   Base_Dir-Abhängigkeit? - wo
   out_dir - wo speichern
   nur eigenes verzeichnis interessant?
      -> nicht für shell code / aka gencode!
      -> __global abhängigkeit
   object.gencode()?
   hast du type-explorer?
      ja?
         führe JEDEN remote aus
         speichere ausgabe in object
      nein:
         fertig
   hast du gencode-{local,remote}?
      ja?
         führe local oder remote aus
         speichere ausgabe in s/^gen//
      nein:
         fertig
      
   hast du code-{local,remote}?
      ja?
         führe local oder remote aus
      nein:
         fertig
   ich habe ...
      object_id
      type
         type.singleton() == False -> require object_id
      parameter gegeben
      requirements / order
   type_explorer := methode zum ausführen?
   cdist.object.Object(type, id)
   methoden:
      gen_code
      code
      run_manifest
         manifest == ort
Type
   singleton: ja / nein
   install: ja / nein
   type_explorer := liste
   optional_parameter
   required_parameter
   TypeExplorer 
      verwandt oder == explorer
      Verwandschaft klären!
   sehr abhängig von base_dir!</behauptung :)>
      - welche gibt es?
      - was für optionen haben sie
   cdist.type.Type("/path/to/type")
      Tree/Path vieh, das liste von $_ speichert
      Einfach iterieren
Explorer
   execute(env)
      env == __explorer -> nur im explorer
z.B. BaseExplorer oder andersherum GlobalExplorer
Manifest
Exec
   wrapper um auszuführen, 
   error handling,
   output redirection (variable, file, beides, socat :-)
--------------------------------------------------------------------------------
- base_dir (conf/, type, ...)
- manifest (initiale)
   $methode_mit_inhalt_von_manifest?
      run_manifest(code)
         ob sinnvoll?
      geht auch mit stdin oder datei
      stdin -> muss in tmp-datei, für sh -e?
- 
--------------------------------------------------------------------------------
save output of shell in buffer instead of displaying?
   -> freedom to decide whether to display or not!