| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 #!/bin/bash |  | 
| 2 # Download and build JSON.pm |  | 
| 3 # Homepage: |  | 
| 4 # http://search.cpan.org/~makamaka/JSON-2.58/lib/JSON.pm |  | 
| 5 # SRC_URL='http://www.cpan.org/authors/id/M/MA/MAKAMAKA/JSON-2.58.tar.gz' |  | 
| 6 PACKAGE='JSON' |  | 
| 7 VERSION='2.59' |  | 
| 8 SRC_URL="http://www.cpan.org/authors/id/M/MA/MAKAMAKA/$PACKAGE-$VERSION.tar.gz" |  | 
| 9 FILENAME="$(basename $SRC_URL)" |  | 
| 10 SHA1_FILENAME="$FILENAME.sha1" |  | 
| 11 BUILD_DIR="$PACKAGE-$VERSION" |  | 
| 12 INSTALL_DIR="$(pwd)/out" |  | 
| 13 |  | 
| 14 curl --remote-name "$SRC_URL" |  | 
| 15 |  | 
| 16 # Check hash |  | 
| 17 # SHA-1 hash generated via: |  | 
| 18 # shasum JSON-2.59.tar.gz > JSON-2.59.tar.gz.sha1 |  | 
| 19 if ! [ -f "$SHA1_FILENAME" ] |  | 
| 20 then |  | 
| 21   echo "SHA-1 hash file $SHA1_FILENAME not found, could not verify archive" |  | 
| 22   exit 1 |  | 
| 23 fi |  | 
| 24 |  | 
| 25 # Check that hash file contains hash for archive |  | 
| 26 HASHFILE_REGEX="^[0-9a-f]{40}  $FILENAME"  # 40-digit hash, followed by filename |  | 
| 27 if ! grep --extended-regex --line-regex --silent \ |  | 
| 28   "$HASHFILE_REGEX" "$SHA1_FILENAME" |  | 
| 29 then |  | 
| 30   echo "SHA-1 hash file $SHA1_FILENAME does not contain hash for $FILENAME," \ |  | 
| 31        'could not verify archive' |  | 
| 32   echo 'Hash file contents are:' |  | 
| 33   cat "$SHA1_FILENAME" |  | 
| 34   exit 1 |  | 
| 35 fi |  | 
| 36 |  | 
| 37 if ! shasum --check "$SHA1_FILENAME" |  | 
| 38 then |  | 
| 39   echo 'SHA-1 hash does not match,' \ |  | 
| 40        "archive file $FILENAME corrupt or compromised!" |  | 
| 41   exit 1 |  | 
| 42 fi |  | 
| 43 |  | 
| 44 # Extract and build |  | 
| 45 tar xvzf "$FILENAME" |  | 
| 46 cd "$BUILD_DIR" |  | 
| 47 perl Makefile.PL INSTALL_BASE="$INSTALL_DIR" |  | 
| 48 make |  | 
| 49 make test |  | 
| 50 make install |  | 
| 51 cd .. |  | 
| 52 rm "$FILENAME" |  | 
| 53 |  | 
| 54 # Rename :: to __ because : is reserved in Windows filenames |  | 
| 55 # (only occurs in man pages, which aren't necessary) |  | 
| 56 for i in $(find . -name '*::*') |  | 
| 57 do |  | 
| 58   mv -f "$i" `echo "$i" | sed s/::/__/g` |  | 
| 59 done |  | 
| 60 |  | 
| 61 # Fix permissions and shebangs |  | 
| 62 # https://rt.cpan.org/Public/Bug/Display.html?id=85917 |  | 
| 63 # Make examples executable |  | 
| 64 cd "$BUILD_DIR" |  | 
| 65 chmod +x eg/*.pl |  | 
| 66 cd t |  | 
| 67 |  | 
| 68 # Strip shebangs from test files that have them |  | 
| 69 for i in *.t |  | 
| 70 do |  | 
| 71   if head -1 "$i" | grep --quiet '^#!' |  | 
| 72   then |  | 
| 73     ed -s "$i" <<END |  | 
| 74 # Delete line 1 |  | 
| 75 1d |  | 
| 76 # Write and Quit |  | 
| 77 wq |  | 
| 78 END |  | 
| 79   fi |  | 
| 80 done |  | 
| OLD | NEW | 
|---|