Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  add_commit_links.pl

  Sprache: Shell
 

#! /usr/bin/perl

#################################################################
# add_commit_links.pl -- add commit links to the release notes
#
# Copyright (c) 2024-2025, PostgreSQL Global Development Group
#
# src/tools/add_commit_links.pl
#################################################################

#
# This script adds commit links to the release notes.
#
# Usage: cd to top of source tree and issue
# src/tools/add_commit_links.pl release_notes_file
#
# The script can add links for release note items that lack them, and update
# those that have them.  The script is sensitive to the release note file being
# in a specific format:
#
#  * File name contains the major version number preceded by a dash
#    and followed by a period
#  * Commit text is generated by src/tools/git_changelog
#  * SGML comments around commit text start in the first column
#  * The commit item title ends with an attribution that ends with
#    a closing parentheses
#  * previously added URL link text is unmodified
#  * a "<para>" follows the commit item title
#
# The major version number is used to select the commit hash for minor
# releases.  An error will be generated if valid commits are found but
# no proper location for the commit links is found.

use strict;
use warnings FATAL => 'all';

sub process_file
{
 my $file = shift;

 my $in_comment = 0;
 my $prev_line_ended_with_paren = 0;
 my $prev_leading_space = '';
 my $lineno = 0;

 my @hashes = ();

 my $tmpfile = $file . '.tmp';

 # Get major version number from the file name.
 $file =~ m/-(\d+)\./;
 my $major_version = $1;

 open(my $fh, '<', $file) || die "could not open file $file: $!\n";
 open(my $tfh, '>', $tmpfile) || die "could not open file $tmpfile: $!\n";

 while (<$fh>)
 {
  $lineno++;

  $in_comment = 1 if (m/^<!--/);

  # skip over commit links because we will add them below
  next
    if (!$in_comment
   && m{^\s*<ulink url="&commit_baseurl;[[:xdigit:]]+">§</ulink>\s*$}
    );

  if ($in_comment && m/\[([[:xdigit:]]+)\]/)
  {
   my $hash = $1;

   # major release item
   (!m/^Branch:/) && push(@hashes, $hash);

   # minor release item
   m/^Branch:/
     && defined($major_version)
     && m/_${major_version}_/
     && push(@hashes, $hash);
  }

  if (!$in_comment && m{</para>})
  {
   if (@hashes)
   {
    if ($prev_line_ended_with_paren)
    {
     for my $hash (@hashes)
     {
      print $tfh
        "$prev_leading_space<ulink url=\"&commit_baseurl;$hash\">§</ulink>\n";
     }
     @hashes = ();
    }
    else
    {
     print
       "hashes found but no matching text found for placement on line $lineno\n";
     exit(1);
    }
   }
  }

  print $tfh $_;

  $prev_line_ended_with_paren = m/\)\s*$/;

  m/^(\s*)/;
  $prev_leading_space = $1;

  $in_comment = 0 if (m/^-->/);
 }

 close($fh);
 close($tfh);

 rename($tmpfile, $file) || die "could not rename %s to %s: $!\n",
   $tmpfile,
   $file;

 return;
}

if (@ARGV == 0)
{
 printf(STDERR "Usage: %s release_notes_file [...]\n", $0);
 exit(1);
}

for my $file (@ARGV)
{
 process_file($file);
}

Messung V0.5 in Prozent
C=93 H=91 G=91

¤ Dauer der Verarbeitung: 0.19 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002