Commit 70563e95 authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Remove old scripts for publishing specs on the web

parent 4f75b775
Loading
Loading
Loading
Loading

index.html

deleted100644 → 0
+0 −44
Original line number Diff line number Diff line

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>oneM2M PROJECT baselines </title>
        <style type="text/css">
            
	body{font-size:0.8em}
            a { text-decoration: none; }
            a:hover { text-decoration: underline; }
            th {text-align:left;}
            .box {float: left;  min-height: 50px;  margin: 0.5em;}
            .after-box {  clear: left;}
	    .icon{width:22px;height:22px}	    
        </style>
    </head>
    <body>
        <header>
            <div class="box">
                <h2>Available PROJECT baseline specifications from Gitlab repository tags </h2>
            </div>
            <div class="after-box">
            </div>
            </header>

        <form method="post" action="./" id="ctl00">
			<div class="aspNetHidden">
				<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="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" />
			</div>

			<div class="aspNetHidden">

				<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="BE8C5505" />
			</div>
            
            <table style="margin-left:20px">
                <tbody>
					<ul id='document-list'>
					</ul>
                         
                </tbody>
            </table>
        </form>
    </body>
</html>
 No newline at end of file

publish_on_pages.sh

deleted100644 → 0
+0 −91
Original line number Diff line number Diff line
#
#	publish_on_pages.sh
#
#	Script to publish specs on gitlab pages supporting multiversioning (content.zip approach) 
#
#	(c) 2024 by Miguel Angel Reina Ortega
#	License: BSD 3-Clause License. See the LICENSE file for further details.
#
#!/bin/bash

DOCKER_IMAGE=logiqx/python-bs4:3.9-slim

echo "\n------ Checking for docker image --------"
docker pull "$DOCKER_IMAGE"
echo "Pages URL:" $2
echo "PROJECT NAME:" $3 # Not used anymore, consider to remove it
echo "TAG NAME:" $4

echo "------ Get the previous GitLab Pages content --------"
set +e
curl --fail "$2/content.zip" -o "content.zip"
echo $BACKUP
if [ $BACKUP == "true" ]; then
    echo "Retrieving content.zip from backup"
    curl "https://git.onem2m.org/specifications/ts-0019/-/jobs/1082/artifacts/download?file_type=archive" >> content.zip
    unzip "content.zip";
    rm "content.zip"
elif [ -e "content.zip" ]; then
    unzip "content.zip";
    rm "content.zip";
else
    if [ $4 == 'upgrade' ]; then
        echo 'Pages do not exist yet';
        exit 0
    fi
fi
set -e

echo "------ Get the previous GitLab Pages content --------"
# Move all folders except the "baselines" folder if baselines folder exists
if [ -d "public/baselines" ]; then
    echo "Baselines already moved to baselines/";
else
    mkdir -p "public/baselines"
    for folder in public/*; do
        if [ -d "$folder" ] && [ "$(basename "$folder")" != "baselines" ]; then
            mv "$folder" "public/baselines/"
            echo "Moved $(basename "$folder") to public/baselines"
        fi
    done
    # Move index.html with new location
    mv "public/index.html" "public/baselines/"

fi

echo "------ Add/update content --------"
if [ $4 == 'upgrade' ]; then
    echo 'Upgrading index.html...'
    docker run --rm -v $(pwd):/tmp -w /tmp "$DOCKER_IMAGE" python3 $1 -u "$7_$4" "$4/$7_$4.docx" "$5"
elif [ $6 == 'true' ]; then
    echo 'Removing all baselines ...'
	rm -r public/baselines/*;
	mkdir -p "public/baselines/$4"
    ls public/
	cp -r -f "$7_$4.docx" public/baselines/$4
    docker run --rm -v $(pwd):/tmp -w /tmp "$DOCKER_IMAGE" python3 $1 "$7_$4" "$4/$7_$4.docx" "$5"
elif [ $6 == 'false' ]; then
	mkdir -p "public/baselines/$4"
    ls public/
	cp -r -f "$7_$4.docx" public/baselines/$4
    docker run --rm -v $(pwd):/tmp -w /tmp "$DOCKER_IMAGE" python3 $1 "$7_$4" "$4/$7_$4.docx" "$5"
else
    echo 'Removing entry for ' $6
    rm -r -f public/baselines/$6
    docker run --rm -v $(pwd):/tmp -w /tmp "$DOCKER_IMAGE" python3 $1 -re "$7_$4" "$4/$7_$4.docx" "$5"
fi

echo "------ Zip the content and publish the zip again ------"
zip -r "content.zip" "public"
mv "content.zip" "public/"
 
exit 0

#Parameters
#updateIndex.py 
#$CI_PAGES_URL
#$CI_PROJECT_NAME
#$CI_COMMIT_REF_NAME
#index.html
#CLEAN_WEB_PAGES
#SPEC_NAME

updateIndex.py

deleted100644 → 0
+0 −120
Original line number Diff line number Diff line
#
#	updateIndex.py
#
#	Script to update index.htm file on Pages.
#
#	(c) 2023 by Miguel Angel Reina Ortega
#	License: BSD 3-Clause License. See the LICENSE file for further details.
#
from bs4 import BeautifulSoup
import argparse, os


def upgradeIndex(args: argparse.Namespace) -> None:
    # Check if index.htm exists
    if not os.path.exists('public/baselines/index.html'):
        print("'index.html' does not exist yet, Upgrade is not needed")
        exit()
    else:
        # Read the source HTML file
        with open('public/baselines/index.html', 'r', encoding='utf-8') as source_file:
            source_html = source_file.read()

        # Read the destination HTML file
        with open(args.indexTemplate, 'r', encoding='utf-8') as dest_file:
            dest_html = dest_file.read()

        print(source_html)
        print(dest_html)
        # Parse both HTML files
        source_soup = BeautifulSoup(source_html, 'html.parser')
        dest_soup = BeautifulSoup(dest_html, 'html.parser')

        print(source_soup)
        print(dest_soup)
        # Find the <ul> element in both the source and destination HTML
        source_ul = source_soup.find('ul', id='document-list')
        dest_ul = dest_soup.find('ul', id='document-list')

        print(source_ul)
        print(dest_ul)
        # Copy the contents of the source <ul> to the destination <ul>
        if dest_ul and source_ul:
            dest_ul.contents.extend(source_ul.contents)
        else:
            print("ERROR: List not found in source and destination index files...")
            exit(1)

        # Save the updated destination HTML
        with open('public/baselines/index.html', 'w', encoding='utf-8') as dest_updated_file:
            dest_updated_file.write(str(dest_soup))

        print("Index.html upgraded")


def updateIndex(args:argparse.Namespace) -> None:
    
    # Check if index.htm exists
    if not os.path.exists('public/baselines/index.html'):
        print("'index.html' does not exist yet, using template")
        with open(args.indexTemplate, 'r', encoding='utf-8') as file:
            html_content = file.read()
    else:
        # Read index HTML
        with open('public/baselines/index.html', 'r', encoding='utf-8') as file:
            html_content = file.read()

    # Analyze index content with BeautifulSoup
    soup = BeautifulSoup(html_content, 'html.parser')

    if args.removeEntry:
        # Remove the element <li> for the document
        if args.documentLink is not None and args.documentName is not None:
            # Find the element to delete
            element_to_delete = soup.find('li', string=args.documentName)
            # Check if the element is found before attempting to delete it
            if element_to_delete:
                # Remove the element from the HTML tree
                element_to_delete.decompose()
            else:
                print("Element not found.")
    elif soup.find('li', string=args.documentName):
        print("'index.html' does already contain the entry")
    else:
        # Find document list
        # Assume there's a list (<ul>) with id "document-list"
        document_list = soup.find('ul', id='document-list')
        # Add the new element <li> for the new document
        if args.documentLink is not None and args.documentName is not None:
            li = soup.new_tag('li')
            a = soup.new_tag('a', href=args.documentLink)
            a.string = args.documentName
            li.append(a)
            document_list.append(li)

    # Save the updated index.html file
    with open('public/baselines/index.html', 'w', encoding='utf-8') as file:
        file.write(str(soup))

    print("Index.html updated")
			


if __name__ == '__main__':

    # Parse command line arguments
    parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    parser.add_argument('-re', '--removeEntry', action='store_true', required=False, default=False,
                        help="Indicate to remove the given entry")
    parser.add_argument('-u', '--upgrade', action='store_true', required=False, default=False,
                        help="Upgrade the index.html")
    parser.add_argument('documentName', help = 'Document name to add to the list')
    parser.add_argument('documentLink', help = 'Document location to add to the list')
    parser.add_argument('indexTemplate', help = 'Index template document')
    args = parser.parse_args()

    if args.upgrade:
        upgradeIndex(args)
    else:
        updateIndex(args)

upgrade_pages.sh

deleted100755 → 0
+0 −30
Original line number Diff line number Diff line
#!/bin/bash

GITLAB_HOST="http://git.onem2m.org"
SPECIFICATIONS_GROUP="2501"
NS_GITLAB_HOST=$(echo $GITLAB_HOST | cut -d'/' -f3)

echo "\n------ Getting all projects IDs --------"
# Get a list of projects in the group using GitLab API
#PROJECT_IDS=$(curl --header "PRIVATE-TOKEN: $1" "$GITLAB_HOST/api/v4/groups/$SPECIFICATIONS_GROUP/projects" | grep -oP '"id":(?!'$SPECIFICATIONS_GROUP')\d+' | cut -d':' -f2)
PROJECT_IDS=$(curl "$GITLAB_HOST/api/v4/groups/$SPECIFICATIONS_GROUP/projects" | grep -oP '"id":(?!'$SPECIFICATIONS_GROUP')\d+' | cut -d':' -f2)
echo $PROJECT_IDS

#PROJECT_IDS="41" # Use TS-0019 for debugging
# Trigger pipeline for each project. Triggered pipeline pages job will handle the upgrade of the index.html
for PROJECT_ID in $PROJECT_IDS; do
	echo "------ Preparing specification project --------"
	#WORKAROUND UNTIL ACCESS TOKEN WORKS FOR TRIGGERING A PIPELINE (right now, it is allowed but it seems NOT to work)
	#create a pipeline trigger token first
	echo "------ Creating pipeline trigger token --------"
	PIPELINE_TRIGGER_TOKEN_ID=$(curl --request POST --header "PRIVATE-TOKEN:$1" --form description="Temporary pipeline trigger token for tools/scripts" https://git.onem2m.org/api/v4/projects/$PROJECT_ID/triggers | grep -o '"id":[^,]*,"token"'|cut -d',' -f1 | cut -d':' -f2)
    PIPELINE_TRIGGER_TOKEN=$(curl --header "PRIVATE-TOKEN:$1" https://git.onem2m.org/api/v4/projects/$PROJECT_ID/triggers/$PIPELINE_TRIGGER_TOKEN_ID | grep -o '"token":[^,]*'|cut -d'"' -f4)
    echo "------ Triggering pipeline --------"
	#trigger the pipeline
    curl -X POST --fail -F token=$PIPELINE_TRIGGER_TOKEN -F ref=main https://git.onem2m.org/api/v4/projects/$PROJECT_ID/trigger/pipeline
    echo "------ Deleting pipeline trigger token (NOTE that information about the token that caused the pipeline will NOT be available for the pipeline) --------"
	#remove the pipeline trigger token
    curl --request DELETE --header "PRIVATE-TOKEN:$1" "https://git.onem2m.org/api/v4/projects/$PROJECT_ID/triggers/$PIPELINE_TRIGGER_TOKEN_ID"
done

exit 0
 No newline at end of file