From 4282dfda3f8c9110bd9af567daddec8deb40a1c8 Mon Sep 17 00:00:00 2001 From: Mattia Rizzolo Date: Fri, 30 Jan 2015 12:50:43 +0100 Subject: reproducible: rewrite the reproducible_json.sh in python, and replace it --- bin/reproducible_json.py | 33 +++++++++++++++++++++++++++++++++ bin/reproducible_json.sh | 43 ------------------------------------------- job-cfg/reproducible.yaml | 2 +- 3 files changed, 34 insertions(+), 44 deletions(-) create mode 100755 bin/reproducible_json.py delete mode 100755 bin/reproducible_json.sh diff --git a/bin/reproducible_json.py b/bin/reproducible_json.py new file mode 100755 index 00000000..7080b9ea --- /dev/null +++ b/bin/reproducible_json.py @@ -0,0 +1,33 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# +# Copyright © 2015 Mattia Rizzolo +# Licensed under GPL-2+ +# +# Depends: python3 +# +# Build the reproducible.json file, to provide a nice datasource + +from reproducible_common import * + +import json + +result = sorted(query_db('SELECT name, version, status FROM source_packages' + + ' WHERE status != ""')) +count = int(query_db('SELECT COUNT(name) FROM source_packages ' + + 'WHERE status != ""')[0][0]) + +log.info('processing ' + str(count) + ' package to create .json output') + +all_pkgs = [] +keys = ['package', 'version', 'status'] +for row in result: + pkg = dict(zip(keys, row)) + pkg['suite'] = 'sid' + all_pkgs.append(pkg) + +with open(REPRODUCIBLE_JSON, 'w') as fd: + json.dump(all_pkgs, fd, indent=4, sort_keys=True) + +log.info(REPRODUCIBLE_URL + '/reproducible.json has been updated.') + diff --git a/bin/reproducible_json.sh b/bin/reproducible_json.sh deleted file mode 100755 index 9c877e45..00000000 --- a/bin/reproducible_json.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -# Copyright 2014-2015 Holger Levsen -# released under the GPLv=2 - -DEBUG=false -. /srv/jenkins/bin/common-functions.sh -common_init "$@" - -# common code defining db access -. /srv/jenkins/bin/reproducible_common.sh - -set +x - -write_json() { - echo "$1" >> $JSON -} - -JSON=$(mktemp) -RESULT=$(sqlite3 -init $INIT $PACKAGES_DB "SELECT name,version,status FROM source_packages WHERE status != \"\"") -COUNT_TOTAL=$(sqlite3 -init $INIT $PACKAGES_DB "SELECT COUNT(name) FROM source_packages WHERE status != \"\"") -echo "$(date) - processing $COUNT_TOTAL packages to create .json output... this will take a while." - -sep="" -write_json "[" -while read LINE ; do - PKG=$(echo "$LINE" | cut -d "|" -f1) - VERSION=$(echo "$LINE" | cut -d "|" -f2) - STATUS=$(echo "$LINE" | cut -d "|" -f3) - write_json "${sep}{" - write_json "\"package\": \"$PKG\"," - write_json "\"version\": \"$VERSION\"," - write_json "\"status\": \"$STATUS\"," - write_json "\"suite\": \"sid\"" - write_json "}" - sep=", " -done < <(echo "$RESULT") -write_json "]" - -echo -echo "$(date) - $REPRODUCIBLE_URL/reproducible.json has been updated." -mv $JSON /var/lib/jenkins/userContent/reproducible.json -chmod 755 /var/lib/jenkins/userContent/reproducible.json diff --git a/job-cfg/reproducible.yaml b/job-cfg/reproducible.yaml index c5ff65bc..39668ae5 100644 --- a/job-cfg/reproducible.yaml +++ b/job-cfg/reproducible.yaml @@ -234,7 +234,7 @@ - '{name}_json': my_description: 'Generate https://reproducible.debian.net/userContent/reproducible.json for consumption by tracker.debian.org.' my_timed: '1 0 * * *' - my_shell: '/srv/jenkins/bin/reproducible_json.sh' + my_shell: '/srv/jenkins/bin/reproducible_json.py' my_recipients: 'holger@layer-acht.org' - '{name}_create_meta_pkg_sets': my_description: 'Create meta package sets for later consumption when generating HTML stats.' -- cgit v1.2.3-70-g09d2