#! /usr/bin/env python

# Copyright 2014 SUSE Linux Products GmbH
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# 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.

import sys


def normalize(s):
    "Normalize string for comparison."
    return s.lower().replace("_", "-")


def check_sections():
    """Check that the projects are in alphabetical order per section."""

    # Note that the file has different sections and we need to check
    # entries within these sections only
    errors = False
    last = ""
    for line in open('jenkins/jobs/projects.yaml', 'r'):
        if line.startswith('# Section:'):
            last = ""
            section = line[10:].strip()
            print("Checking section '%s'" % section)
        if line.startswith('    name: '):
            i = line.find(' name: ')
            current = line[i + 7:].strip()
            if normalize(last) > normalize(current):
                print("  Wrong alphabetical order: %(last)s, %(current)s" %
                      {"last": last, "current": current})
                errors = True
            last = current
    return errors


def check_all():
    errors = check_sections()

    if errors:
        print("Found errors in jenkins/jobs/projects.yaml!")
    else:
        print("No errors found in jenkins/jobs/projects.yaml!")
    return errors

if __name__ == "__main__":
    sys.exit(check_all())