2014-02-07 9 views

Antwort

2

Die yamllint Kommandozeilen-Tool tut, was Sie wollen:

sudo pip install yamllint 

Insbesondere hat es eine Regel key-duplicates, die Wiederholungen und Schlüssel erkennt einander überschrei:

$ yamllint test.yml 
test.yml 
    1:1  warning missing document start "---" (document-start) 
    4:5  error duplication of key ":name" in mapping (key-duplicates) 
(Es hat viele andere Regeln, die Sie aktivieren/deaktivieren oder zwicken können.)

2

Ist es das, wonach Sie suchen?

require 'yaml' 

def check_yaml(filename) 
    unless YAML.dump(YAML.load_file(filename)) == File.read(filename).gsub(/\s*#.*/, '') 
    raise 'problem' 
    end 
end 

check_yaml 'somefile.yml' 
+0

Sie müssten irgendwie Kommentare aus dem entfernen Yaml-Datei, da sie definitiv verloren gehen würden. –

+0

Okay, ich habe die Kommentare entfernt. Siehe Bearbeiten – seph

+0

Solange es keine Zeichenfolgen ('#') in Strings gibt, würde es wahrscheinlich funktionieren. –

0

Was 1.yaml importieren und dann auf 2.yaml Exportieren und diff 1.yaml 2.yaml?
Kann den Code nicht liefern - no nix utils auf dieser Maschine, aber Sie haben die Idee.

Verwandte Themen