Skip to content

Commit 8379156

Browse files
Merge pull request #2 from ICIQ-DMP/usability_create_readme
ADDED: improved the usability of create_readme by accepting parameter. Done! Thank you very much.
2 parents 6efc353 + f8401b2 commit 8379156

8 files changed

Lines changed: 76 additions & 7 deletions

File tree

create_Readme/.dockerignore

Whitespace-only changes.

create_Readme/.gitignore

Whitespace-only changes.

create_Readme/Dockerfile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
FROM python:3.11-slim
2+
3+
# Optional: install system deps
4+
RUN apt-get update && apt-get install -y --no-install-recommends \
5+
&& rm -rf /var/lib/apt/lists/*
6+
7+
# Set workdir
8+
WORKDIR /app
9+
10+
# Copy source
11+
COPY create_Readme.py .
12+
COPY requirements.txt .
13+
14+
# Install dependencies
15+
RUN pip install --no-cache-dir -r requirements.txt
16+
17+
# Set default command
18+
CMD ["python", "create_Readme.py"]

create_Readme/compose.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
services:
2+
create_readme:
3+
image: docker.io/jenkins/jenkins:lts
4+
build:
5+
context: .
6+
dockerfile: Dockerfile
7+
container_name: create_readme
8+
environment:
9+
- DOI=$DOI
10+
- LANG=$LANG
11+
- URL=$URL
12+
- OUTPUT_PATH=/output
13+
secrets:
14+
- DATAVERSE_TOKEN
15+
volumes:
16+
- ./output:/output
17+
18+
19+
secrets:
20+
DATAVERSE_TOKEN:
21+
file: ./secrets/DATAVERSE_TOKEN
22+

create_Readme/create_Readme.py

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,34 @@
1-
# Parameters required for this script
2-
token = ""
3-
doi = "" # DOI in format "doi:10.34810/dataXXX"
4-
lang = "" #language of the Readme file
5-
base_url = "https://dataverse.csuc.cat/"
61

72
import os
83
import subprocess
94
import sys
105
import re
116

7+
def read_secret(path):
8+
try:
9+
with open(path, "r") as f:
10+
return f.read().strip()
11+
except Exception as e:
12+
raise RuntimeError(f"Failed to read secret from {path}: {e}")
13+
14+
15+
# Load token from Docker secret
16+
token = read_secret("/run/secrets/DATAVERSE_TOKEN") # Do not allow hardcoded credentials...
17+
18+
doi = os.environ.get("DOI")
19+
lang = os.environ.get("LANG", "english")
20+
base_url = os.environ.get("BASE_URL", "https://dataverse.csuc.cat/")
21+
output_path = os.environ.get("OUTPUT_PATH")
22+
23+
# Example usage
24+
print("✅ Token, DOI, LANG, BASE_URL and OUTPUT_PATH loaded successfully")
25+
print(f"TOKEN (first 5 chars): {token[:5]}...")
26+
print(f"DOI: {doi}")
27+
print(f"LANG: {lang}")
28+
print(f"BASE_URL: {base_url}")
29+
print(f"OUTPUT_PATH: {output_path}")
30+
31+
1232
# Function to install required packages
1333
def install_packages():
1434
"""
@@ -275,8 +295,12 @@ def createreadme(base_url, token, doi, language,
275295
# Retrieve dataset metadata
276296
dataset = api.get_dataset(doi)
277297

278-
# Extract path from DOI
279-
path = doi.replace("doi:10.34810/", "")
298+
# Extract path from DOI if not provided
299+
if output_path is None:
300+
path = doi.replace("doi:10.34810/", "")
301+
else:
302+
path = output_path
303+
280304

281305
try:
282306
# Create directory if it does not exist

create_Readme/output/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+
!.gitignore

create_Readme/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pyDataverse

create_Readme/secrets/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+
!.gitignore

0 commit comments

Comments
 (0)