From c72f7f8a46a66c38f18f2acbac9773f6e5fde11c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Wed, 4 Sep 2019 13:02:26 +0200
Subject: [PATCH] Improve the script for creating download links
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

— factorize the two scripts into a single one
— various safety and style improvements
---
 .gitlab-ci.yml          |  5 ++---
 setup-download-links.sh | 37 +++++++++++++++++++++++++++++++++++++
 setup-release.sh        | 33 ---------------------------------
 setup-snapshots.sh      | 33 ---------------------------------
 4 files changed, 39 insertions(+), 69 deletions(-)
 create mode 100755 setup-download-links.sh
 delete mode 100755 setup-release.sh
 delete mode 100755 setup-snapshots.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3bb1bca..36710b4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,9 +16,8 @@ build:
     GEM_HOME: "$CI_PROJECT_DIR/.gem"
   before_script:
     - gem install jekyll
-    - (cd _data && wget https://www.dynare.org/RePEc/cpm/dynare/wp.yml)
-    - ./setup-release.sh
-    - ./setup-snapshots.sh
+    - (cd _data && wget --no-verbose https://www.dynare.org/RePEc/cpm/dynare/wp.yml)
+    - ./setup-download-links.sh
     - bundle install
   script:
     - (cd assets/images/logo && make)
diff --git a/setup-download-links.sh b/setup-download-links.sh
new file mode 100755
index 0000000..8f51dc9
--- /dev/null
+++ b/setup-download-links.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+
+set -e
+
+for branch in release snapshot
+do
+    mkdir -p "assets/$branch"
+    cd "assets/$branch"
+
+    wget --no-verbose "https://www.dynare.org/$branch/macosx.json"
+    wget --no-verbose "https://www.dynare.org/$branch/source.json"
+    wget --no-verbose "https://www.dynare.org/$branch/windows.json"
+    wget --no-verbose "https://www.dynare.org/$branch/windows-zip.json"
+
+    arr=("macosx" "source" "windows" "windows-zip")
+
+    for dir in "${arr[@]}"
+    do
+        mkdir -p "$dir"
+        mapfile -t filenames < <(jq .[].filename "$dir.json")
+        mapfile -t timestamps < <(jq .[].date "$dir.json")
+        n=$(jq length "$dir.json")
+        cd "$dir"
+        for ((i = 0; i < n; i++))
+        do
+            filename="${filenames[i]%\"}"
+            filename="${filename#\"}"
+            timestamp="${timestamps[i]%\"}"
+            timestamp="${timestamp#\"}"
+            echo "$filename $timestamp"
+            touch -amt "$timestamp" "$filename"
+        done
+        cd -
+    done
+    rm -- *.json
+    cd -
+done
diff --git a/setup-release.sh b/setup-release.sh
deleted file mode 100755
index 9d81ef5..0000000
--- a/setup-release.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-
-mkdir -p assets/release
-cd assets/release
-
-wget http://www.dynare.org/release/macosx.json
-wget http://www.dynare.org/release/source.json
-wget http://www.dynare.org/release/windows.json
-wget http://www.dynare.org/release/windows-zip.json
-
-declare -a arr=("macosx" "source" "windows" "windows-zip")
-
-for dir in "${arr[@]}"
-do
-    mkdir $dir
-    filenames=(`jq .[].filename $dir.json`)
-    timestamps=(`jq .[].date $dir.json`)
-    n=`jq length $dir.json`
-    n=`expr $n - 1`
-    cd $dir
-    for i in `seq 0 $n`;
-    do
-        filename="${filenames[i]%\"}"
-        filename="${filename#\"}"
-        timestamp="${timestamps[i]%\"}"
-        timestamp="${timestamp#\"}"
-        echo $filename $timestamp
-        touch -amt $timestamp $filename
-    done
-    cd ..
-done
-rm *.json
-cd ../..
diff --git a/setup-snapshots.sh b/setup-snapshots.sh
deleted file mode 100755
index 0fc7633..0000000
--- a/setup-snapshots.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-
-mkdir -p assets/snapshot
-cd assets/snapshot
-
-wget http://www.dynare.org/snapshot/macosx.json
-wget http://www.dynare.org/snapshot/source.json
-wget http://www.dynare.org/snapshot/windows.json
-wget http://www.dynare.org/snapshot/windows-zip.json
-
-declare -a arr=("macosx" "source" "windows" "windows-zip")
-
-for dir in "${arr[@]}"
-do
-    mkdir $dir
-    filenames=(`jq .[].filename $dir.json`)
-    timestamps=(`jq .[].date $dir.json`)
-    n=`jq length $dir.json`
-    n=`expr $n - 1`
-    cd $dir
-    for i in `seq 0 $n`;
-    do
-        filename="${filenames[i]%\"}"
-        filename="${filename#\"}"
-        timestamp="${timestamps[i]%\"}"
-        timestamp="${timestamp#\"}"
-        echo $filename $timestamp
-        touch -amt $timestamp $filename
-    done
-    cd ..
-done
-rm *.json
-cd ../..
-- 
GitLab