+++ /dev/null
-#!/bin/bash
-
-# Copyright (c) 2014. The SimGrid Team.
-# All rights reserved.
-
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the license (GNU LGPL) which comes with this package.
-
-if [ "$1" = "-t" ]; then
- template=$2
- shift 2
-else
- template=$(git rev-parse --show-toplevel)/COPYRIGHT.template
-fi
-
-if [ $# -eq 0 ]; then
- cat >&2 <<EOF
-Usage: $0 [-t COPYRIGHT.template] files...
-EOF
- exit 1
-fi
-
-if [ ! -r "$template" ]; then
- printf 'File not found: %s\n' "$template" >&2
- exit 1
-fi
-
-printf 'Using template: %s\n' "$template"
-
-now=$(date +%Y)
-
-get_dates() {
- local file=$1
- local date
- sed -n '/Copyright.*SimGrid/{
- s/.*(c) \([[:digit:], -]*\).*/\1/
- s/[, ]\+/\n/g
- p
- }' "$file" \
- | while read date; do
- case "$date" in
- "")
- ;;
- *-*)
- seq ${date/-/ }
- ;;
- *)
- echo $date
- ;;
- esac
- done
- git log --format=%ad "$file" | cut -d\ -f5 | uniq
- echo $now
-}
-
-format_dates() {
- local first
- local last
- local next
- read first
- last=$first
- while read next; do
- if [ $next -eq $((last + 1)) ]; then
- last=$next
- else
- if [ $first -eq $last ]; then
- printf '%d, ' $first
- else
- printf '%d-%d, ' $first $last
- fi
- first=$next
- last=$first
- fi
- done
- if [ $first -eq $last ]; then
- printf '%d\n' $first
- else
- printf '%d-%d\n' $first $last
- fi
-}
-
-tmp_head=$(mktemp)
-tmp_copy=$(mktemp)
-tmp_foot=$(mktemp)
-trap "rm -f \"$tmp_head\" \"$tmp_copy\" \"$tmp_foot\"" EXIT
-
-for file; do
- echo "########## $file ##########"
-
- if [ ! -f "$file" ]; then
- echo "!!! skip"
- continue
- fi
-
- if head -n 1 "$file" | grep -q '^#!'; then
- script=1
- else
- script=0
- fi
-
- ### 1. create new template
- dates=$(get_dates "$file" | sort -u | format_dates)
- sed "s/(c) [[:digit:], -]*\./(c) $dates./" "$template" > "$tmp_copy"
- printf '\n' >> "$tmp_copy"
-
- # fix comments for scripts
- if [ $script = 1 ]; then
- sed -i 's!^..!#!;s! *\*/!!' "$tmp_copy"
- fi
-
- ### 2. copy file body
- if grep -q 'Copyright.*SimGrid' "$file"; then
- sed '/Copyright.*SimGrid/,$d' "$file" > "$tmp_head"
- sed -i '${\!^/\* *$!d}' "$tmp_head"
- sed '1,/the terms of the license/d' "$file" > "$tmp_foot"
- elif [ $script = 1 ]; then
- head -n 1 "$file" > "$tmp_head"
- tail -n +2 "$file" > "$tmp_foot"
- printf '\n' >> "$tmp_head"
- else
- :> "$tmp_head"
- cp "$file" "$tmp_foot"
- fi
- sed -i '1{\!^ *\*/!d};/[^[:space:]]/,$!d' "$tmp_foot"
-
- ### 3. concatenate new template and file body into $file
-# cat "$tmp_head"
-# cat "$tmp_copy"
-# cat "$tmp_foot"
- cat "$tmp_head" "$tmp_copy" "$tmp_foot" > $file
-done
-
-cat <<EOF
-
-All files processed.
-
-*** DO NOT FORGET TO DOUBLE CHECK CHANGES BEFORE DOING ANY COMMIT! ***
-
-EOF