[gevice] new file: INSTALL-DBASE
- From: Alejandro Valdes Jimenez <avaldes src gnome org>
- To: svn-commits-list gnome org
- Subject: [gevice] new file: INSTALL-DBASE
- Date: Mon, 4 May 2009 22:44:05 -0400 (EDT)
commit 27d7e0ea26095fe65d81c92449e082a3c4fdb0bf
Author: Alejandro Valdes Jimenez <avaldes utalca cl>
Date: Mon May 4 22:43:26 2009 -0400
new file: INSTALL-DBASE
deleted: prepare-ChangeLog.pl
modified: ChangeLog
modified: gevice.sql
modified: src/gevicedatabase.py
---
INSTALL-DBASE | 6 +
prepare-ChangeLog.pl | 667 --------------------------------------------------
2 files changed, 6 insertions(+), 667 deletions(-)
diff --git a/INSTALL-DBASE b/INSTALL-DBASE
new file mode 100644
index 0000000..f82bc7f
--- /dev/null
+++ b/INSTALL-DBASE
@@ -0,0 +1,6 @@
+# create database (for example: db_gevice)
+createdb -U postgres db_gevice
+
+
+# create tables from file gevice.sql
+psql -U postgres -W -f gevice.sql db_gevice
diff --git a/prepare-ChangeLog.pl b/prepare-ChangeLog.pl
deleted file mode 100644
index 7dc6428..0000000
--- a/prepare-ChangeLog.pl
+++ /dev/null
@@ -1,667 +0,0 @@
-#!/usr/bin/perl -w
-# vim: ft=perl
-# -*- Mode: perl; indent-tabs-mode: nil; c-basic-offset: 2 -*-
-
-# Perl script to create a ChangeLog entry with names of files
-# and functions from a cvs diff.
-#
-# Darin Adler <darin eazel com>, started 20 April 2000
-# Java support added by Maciej Stachowiak <mjs eazel com>
-# Multiple ChangeLog support added by Laszlo (Laca) Peter <laca sun com>
-# Fernando Herrera added Subversion support
-# Sven Herzberg added Git support
-# Behdad Esfahbod improved the file format
-# last updated 13 February 2007
-#
-# (Someone put a license in here, like maybe GPL.)
-#
-# TODO:
-# Command line parameter for reviewed-by lines
-# Provide option to put new ChangeLog into a separate file
-# instead of editing the ChangeLog.
-# For new files, just say "New file" instead of listing
-# function names.
-# List functions that have been removed too.
-# Decide what a good logical order is for the changed files
-# other than a normal text "sort" (top level first?)
-# (group directories?) (.h before .c?)
-# Leave a diff file behind if asked, but in unified format.
-# Handle C++ and yacc source files too (other languages?).
-# Help merge when there are ChangeLog conflicts or if there's
-# already a partly written ChangeLog entry.
-# Add command line option to put the ChangeLog into a separate
-# file or just spew it out stdout.
-# Figure out how to allow -z options from .cvsrc to work without
-# letting other bad options work. Currently the -f disables
-# everything from the .cvsrc.
-# Add CVS version numbers for each file too (can't do that until
-# the changes are checked in, though).
-# Work around diff stupidity where deleting a function that starts
-# with a comment makes diff think that the following function
-# has been changed (if the following function starts with a comment
-# with the same first line, such as /**)
-# Work around diff stupidity where deleting an entire function and
-# the blank lines before it makes diff think you've changed the
-# previous function.
-
-use diagnostics;
-use strict;
-
-use English;
-use Text::Wrap;
-use File::Basename;
-use File::Temp qw/ tempfile /;
-
-# Check for cvs, svn or git system
-my $command;
-if (-e "CVS/Root")
- {
- $command = "cvs";
- }
-elsif (-e ".svn/entries")
- {
- $command = "svn";
- }
-elsif (system ("git-rev-parse --git-dir > /dev/null") >> 8 == 0)
- {
- $command = "git";
- }
-else
- {
- die "There is not known revision system.\n"
- }
-
-# Update the change log file.
-sub update_change_log ($) {
- my $logname = shift;
- if ($command eq "cvs") {
- print STDERR " Updating $logname from cvs repository.\n";
- open ERRORS, "cvs update $logname |" or die "The cvs update of ChangeLog failed: $OS_ERROR.\n";
- } elsif ($command eq "svn") {
- print STDERR " Updating $logname from svn repository.\n";
- open ERRORS, "svn update $logname |" or die "The cvs update of ChangeLog failed: $OS_ERROR.\n";
- } else {
- print STDERR " Not updating ChangeLog from git repository.\n";
- #open ERRORS, "svn update ChangeLog |" or die "The cvs update of ChangeLog failed: $OS_ERROR.\n";
- open ERRORS, "true |";
- }
- print STDERR " $ARG" while <ERRORS>;
- close ERRORS;
-}
-
-# For each file, build a list of modified lines.
-# Use line numbers from the "after" side of each diff.
-my %changed_line_ranges;
-my $file;
-if ($command eq "cvs")
- {
- print STDERR " Running cvs diff to find changes.\n";
- open DIFF, "cvs -fq diff -N |" or die "The cvs diff failed: $OS_ERROR.\n";
- }
-elsif ($command eq "svn")
- {
- print STDERR " Running svn diff to find changes.\n";
- open DIFF, "svn --non-interactive diff --diff-cmd diff -x \"-b\" |" or die "The svn diff failed: $OS_ERROR.\n";
- }
-else
- {
- my ($tmphandle,$tmpname) = tempfile (UNLINK => 1);
- print STDERR " Running git diff to find changes.\n";
- my @args = ("git-diff", "--cached", "--quiet");
- my $cached = "HEAD";
- my $reference = ""; # our reference for diffing; HEAD or --cached
- system (@args);
- if ($? >> 8)
- {
- $cached = "--cached";
- }
- print $tmphandle <<EOF;
-#!/bin/bash
-echo "Index: \$1"
-echo "==================================================================="
-diff -b \$2 \$5 || true
-EOF
- close $tmphandle or die "Failed closing the script file: $OS_ERROR.\n";
- chmod (0700, $tmpname);
- open DIFF, "GIT_EXTERNAL_DIFF='$tmpname' git diff $cached |" or die "The git diff failed: $OS_ERROR.\n";
- }
-
-while (<DIFF>)
- {
- $file = $1 if /^Index: (\S+)$/;
-
- if (defined $file)
- {
- my $basename = basename ($file);
- if ($basename ne "ChangeLog"
- and (/^\d+(,\d+)?[acd](\d+)(,(\d+))?/ or /^Binary files/) )
- {
- push @{$changed_line_ranges{$file}}, [ $2, $4 || $2 ];
- }
- }
- }
-close DIFF;
-if (!%changed_line_ranges)
- {
- print STDERR " No changes found.\n";
- exit;
- }
-
-# For each ".c" file, convert line range to function list.
-print STDERR " Extracting affected function names from C source files.\n";
-my %function_lists;
-foreach my $file (keys %changed_line_ranges)
- {
- # An empty function list still indicates that something changed.
- $function_lists{$file} = "";
-
- # Only look for function names in .c files.
- next unless $file =~ /\.(c|java|cs)/;
-
- # Find all the functions in the file.
- open SOURCE, $file or next;
- my @function_ranges = get_function_line_ranges(\*SOURCE, $file);
- close SOURCE;
-
- # Find all the modified functions.
- my @functions;
- my %saw_function;
- my @change_ranges = (@{$changed_line_ranges{$file}}, []);
- my @change_range = (0, 0);
- FUNCTION: foreach my $function_range_ref (@function_ranges)
- {
- my @function_range = @$function_range_ref;
-
- # Advance to successive change ranges.
- for (;; @change_range = @{shift @change_ranges})
- {
- last FUNCTION unless @change_range;
-
- # If past this function, move on to the next one.
- next FUNCTION if $change_range[0] > $function_range[1];
-
- # If an overlap with this function range, record the function name.
- if ($change_range[1] >= $function_range[0]
- and $change_range[0] <= $function_range[1])
- {
- if (!$saw_function{$function_range[2]})
- {
- $saw_function{$function_range[2]} = 1;
- push @functions, $function_range[2];
- }
- next FUNCTION;
- }
- }
- }
-
- # Format the list of functions now.
- $function_lists{$file} = " (" . join("), (", @functions) . ")" if @functions;
- }
-
-# Write out a new ChangeLog file.
-print STDERR " Finding ChangeLog files:\n";
-my %changelogs;
-foreach my $file (sort keys %function_lists) {
- $file = dirname ($file);
- while ($file ne '.' and $file ne '/') {
- if (-f "$file/ChangeLog") {
- $changelogs{"./$file"} = 1;
- last;
- }
- $file = dirname ($file);
- }
-}
-$changelogs{'.'} = 1;
-
-foreach my $chl (reverse sort keys %changelogs) {
- print STDERR "\t${chl}/ChangeLog\n";
-}
-
-print STDERR " Editing the ChangeLog file(s).\n";
-my $date = sprintf "%d-%02d-%02d",
- 1900 + (localtime $BASETIME)[5], # year
- 1 + (localtime $BASETIME)[4], # month
- (localtime $BASETIME)[3]; # day within month
-my $name = $ENV{CHANGE_LOG_NAME}
- || $ENV{REAL_NAME}
- || ((split(",",(getpwuid $REAL_USER_ID)[6]))[0])
- || "set REAL_NAME environment variable";
-my $email_address = $ENV{CHANGE_LOG_EMAIL_ADDRESS}
- || $ENV{EMAIL_ADDRESS}
- || ((getlogin || getpwuid($<)) . "@" . `hostname`)
- || "set EMAIL_ADDRESS environment variable";
-chomp($email_address);
-foreach my $chlog (reverse sort keys %changelogs) {
- update_change_log ("$chlog/ChangeLog");
- # It's less efficient to read the whole thing into memory than it would be
- # to read it while we prepend to it later, but I like doing this part first.
- open OLD_CHANGE_LOG, "${chlog}/ChangeLog" or die "Could not open ChangeLog file: $OS_ERROR.\n";
- my @old_change_log = <OLD_CHANGE_LOG>;
- close OLD_CHANGE_LOG;
- open CHANGE_LOG, "> ${chlog}/ChangeLog" or die "Could not write ChangeLog\n.";
- print CHANGE_LOG "$date $name <$email_address>\n\n";
- print CHANGE_LOG "\treviewed by: <delete if not using a buddy>\n\n";
- foreach my $file (sort keys %function_lists) {
- my $fname = "./$file";
- if ($fname =~ /^${chlog}\//) {
- $fname =~ s/^${chlog}\///;
- my $lines = wrap("\t", "\t", "XX$fname$function_lists{$file}:");
- $lines =~ s/^\tXX/\t* /;
- print CHANGE_LOG "$lines\n";
- delete ($function_lists{$file});
- }
- }
- print CHANGE_LOG "\n", @old_change_log;
- close CHANGE_LOG;
-
- # Done.
- print STDERR " Done editing ${chlog}/ChangeLog.\n";
- last if not (keys %function_lists);
-}
-
-exit;
-
-
-sub get_function_line_ranges
- {
- my ($file_handle, $file_name) = @_;
-
- if ($file_name =~ /\.c$/) {
- return get_function_line_ranges_for_c ($file_handle, $file_name);
- } elsif ($file_name =~ /\.java$/) {
- return get_function_line_ranges_for_java ($file_handle, $file_name);
- } elsif ($file_name =~ /\.cs$/) {
- #FIXME write a function to extract from .cs files
- return get_function_line_ranges_for_java ($file_handle, $file_name);
- }
- return ();
- }
-
-# Read a file and get all the line ranges of the things that look like C functions.
-# A function name is the last word before an open parenthesis before the outer
-# level open brace. A function starts at the first character after the last close
-# brace or semicolon before the function name and ends at the close brace.
-# Comment handling is simple-minded but will work for all but pathological cases.
-#
-# Result is a list of triples: [ start_line, end_line, function_name ].
-
-sub get_function_line_ranges_for_c
- {
- my ($file_handle, $file_name) = @_;
-
- my @ranges;
-
- my $in_comment = 0;
- my $in_macro = 0;
- my $in_parentheses = 0;
- my $in_braces = 0;
-
- my $word = "";
-
- my $potential_start = 0;
- my $potential_name = "";
-
- my $start = 0;
- my $name = "";
-
- while (<$file_handle>)
- {
- # Handle continued multi-line comment.
- if ($in_comment)
- {
- next unless s-.*\*/--;
- $in_comment = 0;
- }
-
- # Handle continued macro.
- if ($in_macro)
- {
- $in_macro = 0 unless /\\$/;
- next;
- }
-
- # Handle start of macro (or any preprocessor directive).
- if (/^\s*\#/)
- {
- $in_macro = 1 if /^([^\\]|\\.)*\\$/;
- next;
- }
-
- # Handle comments and quoted text.
- while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy
- {
- my $match = $1;
- if ($match eq "/*")
- {
- if (!s-/\*.*?\*/--)
- {
- s-/\*.*--;
- $in_comment = 1;
- }
- }
- elsif ($match eq "//")
- {
- s-//.*--;
- }
- else # ' or "
- {
- if (!s-$match([^\\]|\\.)*?$match--)
- {
- warn "mismatched quotes at line $INPUT_LINE_NUMBER in $file_name\n";
- s-$match.*--;
- }
- }
- }
-
- # Find function names.
- while (m-(\w+|[(){};])-g)
- {
- # Open parenthesis.
- if ($1 eq "(")
- {
- $potential_name = $word unless $in_parentheses;
- $in_parentheses++;
- next;
- }
-
- # Close parenthesis.
- if ($1 eq ")")
- {
- $in_parentheses--;
- next;
- }
-
- # Open brace.
- if ($1 eq "{")
- {
- # Promote potiential name to real function name at the
- # start of the outer level set of braces (function body?).
- if (!$in_braces and $potential_start)
- {
- $start = $potential_start;
- $name = $potential_name;
- }
-
- $in_braces++;
- next;
- }
-
- # Close brace.
- if ($1 eq "}")
- {
- $in_braces--;
-
- # End of an outer level set of braces.
- # This could be a function body.
- if (!$in_braces and $name)
- {
- push @ranges, [ $start, $INPUT_LINE_NUMBER, $name ];
- $name = "";
- }
-
- $potential_start = 0;
- $potential_name = "";
- next;
- }
-
- # Semicolon.
- if ($1 eq ";")
- {
- $potential_start = 0;
- $potential_name = "";
- next;
- }
-
- # Word.
- $word = $1;
- if (!$in_parentheses)
- {
- $potential_start = 0;
- $potential_name = "";
- }
- if (!$potential_start)
- {
- $potential_start = $INPUT_LINE_NUMBER;
- $potential_name = "";
- }
- }
- }
-
- warn "mismatched braces in $file_name\n" if $in_braces;
- warn "mismatched parentheses in $file_name\n" if $in_parentheses;
-
- return @ranges;
- }
-
-
-
-# Read a file and get all the line ranges of the things that look like Java
-# classes, interfaces and methods.
-#
-# A class or interface name is the word that immediately follows
-# `class' or `interface' when followed by an open curly brace and not
-# a semicolon. It can appear at the top level, or inside another class
-# or interface block, but not inside a function block
-#
-# A class or interface starts at the first character after the first close
-# brace or after the function name and ends at the close brace.
-#
-# A function name is the last word before an open parenthesis before
-# an open brace rather than a semicolon. It can appear at top level or
-# inside a class or interface block, but not inside a function block.
-#
-# A function starts at the first character after the first close
-# brace or after the function name and ends at the close brace.
-#
-# Comment handling is simple-minded but will work for all but pathological cases.
-#
-# Result is a list of triples: [ start_line, end_line, function_name ].
-
-sub get_function_line_ranges_for_java
- {
- my ($file_handle, $file_name) = @_;
-
- my @current_scopes;
-
- my @ranges;
-
- my $in_comment = 0;
- my $in_macro = 0;
- my $in_parentheses = 0;
- my $in_braces = 0;
- my $in_non_block_braces = 0;
- my $class_or_interface_just_seen = 0;
-
- my $word = "";
-
- my $potential_start = 0;
- my $potential_name = "";
- my $potential_name_is_class_or_interface = 0;
-
- my $start = 0;
- my $name = "";
- my $current_name_is_class_or_interface = 0;
-
- while (<$file_handle>)
- {
- # Handle continued multi-line comment.
- if ($in_comment)
- {
- next unless s-.*\*/--;
- $in_comment = 0;
- }
-
- # Handle continued macro.
- if ($in_macro)
- {
- $in_macro = 0 unless /\\$/;
- next;
- }
-
- # Handle start of macro (or any preprocessor directive).
- if (/^\s*\#/)
- {
- $in_macro = 1 if /^([^\\]|\\.)*\\$/;
- next;
- }
-
- # Handle comments and quoted text.
- while (m-(/\*|//|\'|\")-) # \' and \" keep emacs perl mode happy
- {
- my $match = $1;
- if ($match eq "/*")
- {
- if (!s-/\*.*?\*/--)
- {
- s-/\*.*--;
- $in_comment = 1;
- }
- }
- elsif ($match eq "//")
- {
- s-//.*--;
- }
- else # ' or "
- {
- if (!s-$match([^\\]|\\.)*?$match--)
- {
- warn "mismatched quotes at line $INPUT_LINE_NUMBER in $file_name\n";
- s-$match.*--;
- }
- }
- }
-
- # Find function names.
- while (m-(\w+|[(){};])-g)
- {
- # Open parenthesis.
- if ($1 eq "(")
- {
- if (!$in_parentheses) {
- $potential_name = $word;
- $potential_name_is_class_or_interface = 0;
- }
- $in_parentheses++;
- next;
- }
-
- # Close parenthesis.
- if ($1 eq ")")
- {
- $in_parentheses--;
- next;
- }
-
- # Open brace.
- if ($1 eq "{")
- {
- # Promote potiential name to real function name at the
- # start of the outer level set of braces (function/class/interface body?).
- if (!$in_non_block_braces
- and (!$in_braces or $current_name_is_class_or_interface)
- and $potential_start)
- {
- if ($name)
- {
- push @ranges, [ $start, ($INPUT_LINE_NUMBER - 1),
- join ('.', @current_scopes) ];
- }
-
-
- $current_name_is_class_or_interface = $potential_name_is_class_or_interface;
-
- $start = $potential_start;
- $name = $potential_name;
-
- push (@current_scopes, $name);
- } else {
- $in_non_block_braces++;
- }
-
- $potential_name = "";
- $potential_start = 0;
-
- $in_braces++;
- next;
- }
-
- # Close brace.
- if ($1 eq "}")
- {
- $in_braces--;
-
- # End of an outer level set of braces.
- # This could be a function body.
- if (!$in_non_block_braces)
- {
- if ($name)
- {
- push @ranges, [ $start, $INPUT_LINE_NUMBER,
- join ('.', @current_scopes) ];
-
- pop (@current_scopes);
-
- if (@current_scopes)
- {
- $current_name_is_class_or_interface = 1;
-
- $start = $INPUT_LINE_NUMBER + 1;
- $name = $current_scopes[$#current_scopes-1];
- }
- else
- {
- $current_name_is_class_or_interface = 0;
- $start = 0;
- $name = "";
- }
- }
- }
- else
- {
- $in_non_block_braces-- if $in_non_block_braces;
- }
-
- $potential_start = 0;
- $potential_name = "";
- next;
- }
-
- # Semicolon.
- if ($1 eq ";")
- {
- $potential_start = 0;
- $potential_name = "";
- next;
- }
-
- if ($1 eq "class" or $1 eq "interface") {
- $class_or_interface_just_seen = 1;
- next;
- }
-
- # Word.
- $word = $1;
- if (!$in_parentheses)
- {
- if ($class_or_interface_just_seen) {
- $potential_name = $word;
- $potential_start = $INPUT_LINE_NUMBER;
- $class_or_interface_just_seen = 0;
- $potential_name_is_class_or_interface = 1;
- next;
- }
- }
- if (!$potential_start)
- {
- $potential_start = $INPUT_LINE_NUMBER;
- $potential_name = "";
- }
- $class_or_interface_just_seen = 0;
- }
- }
-
- warn "mismatched braces in $file_name\n" if $in_braces;
- warn "mismatched parentheses in $file_name\n" if $in_parentheses;
-
- return @ranges;
- }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]