From 3deb6ad7d19774feb15c46f925059efe19462098 Mon Sep 17 00:00:00 2001 From: Mark Reynolds Date: Mar 13 2020 23:36:17 +0000 Subject: Issue 50954 - Port buildnum.pl to python Description: Replace buildnum.pl with a python version so we can continue to remove perl dependencies. relates: https://pagure.io/389-ds-base/issue/50954 Reviewed by: firstyear(Thanks!) --- diff --git a/Makefile.am b/Makefile.am index 9180d17..1e88a38 100644 --- a/Makefile.am +++ b/Makefile.am @@ -13,7 +13,7 @@ QUOTE := $(NULLSTRING)"# a double quote" # PYTHON := python3 -BUILDNUM := $(shell perl $(srcdir)/buildnum.pl) +BUILDNUM := $(shell $(srcdir)/buildnum.py) NQBUILDNUM := $(subst \,,$(subst $(QUOTE),,$(BUILDNUM))) DEBUG_DEFINES = @debug_defs@ DEBUG_CFLAGS = @debug_cflags@ @@ -627,7 +627,7 @@ dist_noinst_HEADERS += \ endif dist_noinst_DATA = \ - $(srcdir)/buildnum.pl \ + $(srcdir)/buildnum.py \ $(srcdir)/ldap/admin/src/*.in \ $(srcdir)/ldap/admin/src/scripts/*.in \ $(srcdir)/ldap/admin/src/scripts/*.ldif \ diff --git a/buildnum.pl b/buildnum.pl deleted file mode 100755 index 8db83da..0000000 --- a/buildnum.pl +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/perl -# --- BEGIN COPYRIGHT BLOCK --- -# Copyright (C) 2001 Sun Microsystems, Inc. Used by permission. -# Copyright (C) 2005 Red Hat, Inc. -# All rights reserved. -# -# License: GPL (version 3 or any later version). -# See LICENSE for details. -# --- END COPYRIGHT BLOCK --- - -#-------------------------------------------- -# buildnum.pl -# -# Generates a dated build number and writes -# out a buildnum.dat file in a user specified -# subdirectory. -# -# Usage: buildnum.pl -p -#-------------------------------------------- - -use Getopt::Std; -use FileHandle; - -autoflush STDERR 1; - -getopts('p:H'); - -if ($opt_H) {exitHelp();} - -# Load arguments -$platdir = $opt_p; - -# Get current time -@now = gmtime($ENV{SOURCE_DATE_EPOCH} || time); - -# Format buildnum as YYYY.DDD.HHMM -$year = $now[5] + 1900; -$doy = $now[7] + 1; -if ($doy < 100) { $doy = 0 . $doy; } -$tod = $now[2] . $now[1]; -$buildnum = "$year.$doy.$tod"; - -if ($platdir) { - # Write buildnum.dat - $buildnum_file = "./$platdir/buildnum.dat"; - open(BUILDNUM,">$buildnum_file") || die "Error: Can't create $buildnum_file: $!\n"; - print BUILDNUM "\\\"$buildnum\\\""; - close(BUILDNUM); -} else { - print "\\\"$buildnum\\\""; -} - -#---------- exitHelp subroutine ---------- -sub exitHelp { - print(STDERR "$0: Generates a dated build number. - - \tUsage: $0 -p - - \t-p Platform subdirectory. - \t-H Print this help message\n"); - exit(0); -} diff --git a/buildnum.py b/buildnum.py new file mode 100755 index 0000000..8b7226c --- /dev/null +++ b/buildnum.py @@ -0,0 +1,28 @@ +#!/usr/bin/python3 +# --- BEGIN COPYRIGHT BLOCK --- +# Copyright (C) 2020 Red Hat, Inc. +# All rights reserved. +# +# License: GPL (version 3 or any later version). +# See LICENSE for details. +# --- END COPYRIGHT BLOCK --- + +# Generate a build number in the format YYYY.DDD.HHMM + +import os +import time + +SDE = os.getenv('SOURCE_DATE_EPOCH') +if SDE is not None: + obj = time.gmtime(SDE) +else: + obj = time.gmtime() + +year = obj[0] +doy = obj[7] +if doy < 100: + doy = "0" + str(doy) +tod = str(obj[3]) + str(obj[4]) +buildnum = f"{year}.{doy}.{tod}" + +print(f'\\"{buildnum}\\"', end = '')