-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #98 from tlssuse/gs-template-metadata-202308
GS metadata template updates
- Loading branch information
Showing
4 changed files
with
462 additions
and
283 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,43 +10,32 @@ | |
# Display banner | ||
## | ||
echo | ||
echo "= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =" | ||
echo "= Set up workspace for new TRD getting started guide =" | ||
echo "= = = = = = = = = = = = = = = = = = = = = = = = = = = = = =" | ||
echo "= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =" | ||
echo "= Set up workspace for new TRD getting started guide =" | ||
echo "= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =" | ||
echo | ||
echo " This script will prompt you for information about your" | ||
echo " guide, then use your responses to create the directories" | ||
echo " and template files for your guide" | ||
echo | ||
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo "- Before proceeding make sure you have:" | ||
echo "- 1. created a local branch: \`git branch myproject\`" | ||
echo "- 2. checked out your new branch: \`git checkout myproject\`" | ||
echo "- 3. changed to the 'kubernetes/start' or" | ||
echo "- 'linux/start' directory (as appropriate)" | ||
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - Before proceeding make sure you have:" | ||
echo " - 1. created a local branch: \`git branch myproject\`" | ||
echo " - 2. checked out your new branch: \`git checkout myproject\`" | ||
echo " - 3. changed to the 'kubernetes/start' or" | ||
echo " - 'linux/start' directory (as appropriate)" | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo | ||
echo "Are you ready to proceed?" | ||
read -p "Press ENTER to continue or CTRL-C to cancel." | ||
|
||
|
||
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ||
# Verify readiness | ||
## | ||
|
||
# check present working directory | ||
if [ $(basename $PWD) != "start" ]; then | ||
echo | ||
echo "Your current working directory is:" | ||
echo " '$PWD'" | ||
echo "Make sure you change to 'kubernetes/start' or 'linux/start'" | ||
echo " then execute this script again." | ||
echo | ||
exit 1 | ||
fi | ||
|
||
|
||
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ||
# Initialize variables | ||
## | ||
templatesroot="../../../common/templates/start" | ||
currentbranch="$(git branch --show-current)" | ||
commonroot="../../common" | ||
templatesroot="${commonroot}/templates/start" | ||
category="" | ||
doctype="" | ||
suseprod="" | ||
|
@@ -56,77 +45,128 @@ usecase="" | |
documentbase="" | ||
|
||
|
||
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ||
# Verify readiness | ||
## | ||
|
||
# Verify current branch is not 'main' | ||
if [[ "${currentbranch}" == "main" ]]; then | ||
echo | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - Be sure to work in a branch other than 'main'." | ||
echo " -" | ||
echo " - Create a branch for your project and check it out," | ||
echo " - then re-run this script." | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo | ||
exit 1 | ||
fi | ||
|
||
|
||
# Verify present working directory is correct for a getting started guide | ||
if [[ ! $PWD =~ kubernetes/start$ ]] && [[ ! $PWD =~ linux/start$ ]]; then | ||
echo | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - Your current working directory is:" | ||
echo " - '$PWD'" | ||
echo " -" | ||
echo " - Be sure you change to the 'kubernetes/start' or" | ||
echo " - 'linux/start' subdirectory, then execute this" | ||
echo " - script again." | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo | ||
exit 2 | ||
else | ||
# Set category from the path (kubernetes or linux) | ||
# category=$(dirname $PWD) | ||
category=${PWD%/*} | ||
fi | ||
|
||
|
||
|
||
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ||
# Gather inputs | ||
## | ||
|
||
echo | ||
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " Gather some information" | ||
echo "- Gathering some information" | ||
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo | ||
|
||
# get solution category | ||
while read -p "Please enter the relevant category (i.e., 'k' for Kubernetes or 'l' for Linux) : " response | ||
do | ||
case ${response} in | ||
'k' | 'K' | 'Kubernetes' | 'kubernetes') | ||
category='kubernetes' | ||
break | ||
;; | ||
'l' | 'L' | 'Linux' | 'linux') | ||
category='linux' | ||
break | ||
;; | ||
'q' | 'quit') | ||
echo "Quitting ... nothing done." | ||
exit 1 | ||
;; | ||
*) | ||
echo "Invalid input. Please try again or enter 'q' to quit." | ||
;; | ||
esac | ||
done | ||
|
||
|
||
# get primary SUSE product | ||
while read -p "Please enter the primary SUSE product name (e.g., 'rancher', 'k3s', 'sles', 'suma', etc.) : " response | ||
echo "Please enter the primary SUSE product name" | ||
echo "(e.g., 'rancher', 'neuvector', 'sles', 'slemicro', 'suma', etc.)" | ||
while read -p ">> Primary SUSE product name : " response | ||
do | ||
suseprod=$( echo ${response} | tr '[:upper:]' '[:lower:]' ) | ||
# validate SUSE product | ||
case $suseprod in | ||
'sles' | 'slehpc' | 'slemicro' | 'suma') | ||
'sles' | 'slessap' | 'slehpc' | 'slemicro' | 'slelp' | 'sleha' | 'suma') | ||
break | ||
;; | ||
'rancher' | 'rke' | 'rke2' | 'k3s' | 'longhorn' | 'harvester') | ||
'rancher' | 'rke' | 'rke2' | 'k3s' | 'longhorn' | 'neuvector' | 'harvester') | ||
break | ||
;; | ||
'q' | 'quit') | ||
echo "Quitting ... nothing done." | ||
exit 2 | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - Quitting ... nothing done." | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
exit 3 | ||
;; | ||
*) | ||
echo "Invalid input. Please try again or enter 'q' to quit." | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - Invalid input." | ||
echo " - Valid options include:" | ||
echo " - sles, slehpc, slemicro, suma," | ||
echo " - rancher, rke2, rke, k3s, longhorn," | ||
echo " - neuvector, harvester" | ||
echo " - Please try again or press CTRL-C to quit." | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
;; | ||
esac | ||
done | ||
|
||
# get Partner Name | ||
read -p "Please enter the name of the primary partner : " response | ||
partnername=$( echo ${response} | tr '[:upper:]' '[:lower:]' ) | ||
# get Name of the Primary Partner | ||
echo | ||
echo "Please enter the name of the primary partner." | ||
echo "Multiple partners and partner products can be featured" | ||
echo "in a guide, but one should be selected as primary." | ||
while read -p ">> Name of primary partner or project : " response | ||
do | ||
partnername=$( echo ${response} | tr '[:upper:]' '[:lower:]' | sed 's/\ //g' ) | ||
if [ -n "$partnername" ]; then | ||
break | ||
else | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - Invalid input." | ||
echo " - Partner name cannot be blank." | ||
echo " - Please try again or press CTRL-C to quit." | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
fi | ||
done | ||
|
||
|
||
# get Partner Product | ||
read -p "Please enter the primary partner product name : " response | ||
# get Name of the Primary Partner's product | ||
echo "Please enter the primary partner's product name." | ||
read -p ">> Primary partner's product name : " response | ||
if [ -n "$response" ]; then | ||
partnerprod="-$( echo ${response} | tr '[:upper:]' '[:lower:]' )" | ||
partnerprod="-$( echo ${response} | tr '[:upper:]' '[:lower:]' | sed 's/\ //g' )" | ||
else | ||
# allow the partner product name to be left blank | ||
partnerprod="" | ||
fi | ||
|
||
# get Use Case | ||
read -p "If you would like a use case or description (1-3 words), enter it now or just press ENTER : " response | ||
# get Use Case or other text | ||
echo | ||
echo "Sometimes a solution with the same components can address" | ||
echo "more than one use case." | ||
echo "If you need to distinguish this guide from an existing one," | ||
echo "you can provide up to 20 characters here that will be added" | ||
echo "to the file names." | ||
echo "In most cases, you should leave this blank by just pressing ENTER." | ||
read -p ">> Distinctive text : " response | ||
if [ -n "$response" ]; then | ||
usecase="_$( echo ${response} | tr '[:upper:]' '[:lower:]' | tr ' ' '-' )" | ||
else | ||
|
@@ -146,32 +186,33 @@ documentbase="gs_${suseprod}_${partnername}${partnerprod}${usecase}" | |
## | ||
|
||
echo | ||
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo "- About to create the following structure:" | ||
echo "-" | ||
echo "- ${category}" | ||
echo "- └── start" | ||
echo "- └── ${partnername}" | ||
echo "- ├── DC-${documentbase}" | ||
echo "- ├── adoc" | ||
echo "- │ ├── ${documentbase}.adoc" | ||
echo "- │ ├── ${documentbase}-docinfo.xml" | ||
echo "- ├── images -> media" | ||
echo "- └── media" | ||
echo "- └── src" | ||
echo "- ├── png" | ||
echo "- └── svg" | ||
echo "-" | ||
echo "- Note: Several symbolic links will also be created." | ||
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - Preparing to create the following structure:" | ||
echo " -" | ||
echo " - ${category}" | ||
echo " - └── start" | ||
echo " - └── ${partnername}" | ||
echo " - ├── DC-${documentbase}" | ||
echo " - ├── adoc" | ||
echo " - │ ├── ${documentbase}.adoc" | ||
echo " - │ ├── ${documentbase}-docinfo.xml" | ||
echo " - ├── images -> media" | ||
echo " - └── media" | ||
echo " - └── src" | ||
echo " - ├── png" | ||
echo " - └── svg" | ||
echo " -" | ||
echo " - NOTE: Several symbolic links will also be created." | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo | ||
|
||
|
||
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ||
# confirm user is ready to proceed | ||
## | ||
|
||
read -p "Press ENTER to create document structure or CTRL-C to cancel." | ||
read -p ">> Press ENTER to create document structure or CTRL-C to cancel." | ||
echo | ||
|
||
|
||
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ||
|
@@ -180,64 +221,72 @@ read -p "Press ENTER to create document structure or CTRL-C to cancel." | |
|
||
# create primary directory if it does not already exist | ||
[ -d ${partnername} ] || mkdir ${partnername} | ||
cd ${partnername} | ||
|
||
# create DC- file | ||
cp ${templatesroot}/_DC-file \ | ||
DC-${documentbase} | ||
if [ ! -f "${partnername}/DC-${documentbase}" ]; then | ||
cp -n ${templatesroot}/_DC-file ${partnername}/DC-${documentbase} | ||
else | ||
echo | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo " - 'DC-${documentbase}' could not be created in" | ||
echo " - '${partnername}'." | ||
echo " -" | ||
echo " - Make sure that" | ||
echo " - 'DC-${documentbase}'" | ||
echo " - does not already exist." | ||
echo " - If it does, re-run this script with different input." | ||
echo " - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo | ||
exit 4 | ||
fi | ||
|
||
# update adoc reference | ||
sed -i "s/MAIN=\"gs_suseprod_partner-partnerprod.adoc\"/MAIN=\"${documentbase}.adoc\"/g" DC-${documentbase} | ||
[ -f "${partnername}/DC-${documentbase}" ] && sed -i "s/MAIN=\"gs_suseprod_partner-partnerprod.adoc\"/MAIN=\"${documentbase}.adoc\"/g" ${partnername}/DC-${documentbase} | ||
|
||
# create adoc directory if it does not already exist | ||
[ -d adoc ] || mkdir -p adoc | ||
#cd adoc | ||
[ -d ${partnername}/adoc ] || mkdir -p ${partnername}/adoc | ||
|
||
# create symlinks to common files | ||
[ -L common_gfdl1.2_i.adoc ] || \ | ||
ln -s ../../../../common/adoc/common_gfdl1.2_i.adoc adoc/ | ||
[ -L common_sbp_legal_notice.adoc ] || \ | ||
ln -s ../../../../common/adoc/common_sbp_legal_notice.adoc adoc/ | ||
[ -L common_trd_legal_notice.adoc ] || \ | ||
ln -s ../../../../common/adoc/common_trd_legal_notice.adoc adoc/ | ||
[ -L common_docinfo_vars.adoc ] || \ | ||
ln -s ../../../../common/adoc/common_docinfo_vars.adoc adoc/ | ||
[ -L ${partnername}/adoc/common_gfdl1.2_i.adoc ] || \ | ||
ln -sr ${commonroot}/adoc/common_gfdl1.2_i.adoc ${partnername}/adoc/ | ||
[ -L ${partnername}/adoc/common_sbp_legal_notice.adoc ] || \ | ||
ln -sr ${commonroot}/adoc/common_sbp_legal_notice.adoc ${partnername}/adoc/ | ||
[ -L ${partnername}/adoc/common_trd_legal_notice.adoc ] || \ | ||
ln -sr ${commonroot}/adoc/common_trd_legal_notice.adoc ${partnername}/adoc/ | ||
[ -L ${partnername}/adoc/common_docinfo_vars.adoc ] || \ | ||
ln -sr ${commonroot}/adoc/common_docinfo_vars.adoc ${partnername}/adoc/ | ||
|
||
# create .adoc file | ||
[ -f "adoc/${documentbase}.adoc" ] || \ | ||
[ -f "${partnername}/adoc/${documentbase}.adoc" ] || \ | ||
cp ${templatesroot}/_adoc-file \ | ||
adoc/${documentbase}.adoc | ||
${partnername}/adoc/${documentbase}.adoc | ||
|
||
# create -docinfo.xml file | ||
[ -f "adoc/${documentbase}-docinfo.xml" ] || \ | ||
[ -f "${partnername}/adoc/${documentbase}-docinfo.xml" ] || \ | ||
cp ${templatesroot}/_docinfo-file \ | ||
adoc/${documentbase}-docinfo.xml | ||
${partnername}/adoc/${documentbase}-docinfo.xml | ||
|
||
# create media directory structure | ||
#cd .. | ||
[ -d media/src/png ] || mkdir -p media/src/png | ||
[ -d media/src/svg ] || mkdir -p media/src/svg | ||
#cd media/src/svg | ||
[ -d ${partnername}/media/src/png ] || mkdir -p ${partnername}/media/src/png | ||
[ -d ${partnername}/media/src/svg ] || mkdir -p ${partnername}/media/src/svg | ||
# create symlink to logo | ||
[ -L media/src/svg/suse.svg ] || \ | ||
ln -s ../../../../../../common/images/src/svg/suse.svg media/src/svg/ | ||
#cd ../../.. | ||
[ -L ${partnername}/media/src/svg/suse.svg ] || \ | ||
ln -sr ${commonroot}/images/src/svg/suse.svg ${partnername}/media/src/svg/ | ||
# create images symlink | ||
[ -L images ] || \ | ||
ln -s media images | ||
[ -L ${partnername}/images ] || \ | ||
ln -sr ${partnername}/media ${partnername}/images | ||
|
||
# return to original directory | ||
cd .. | ||
|
||
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## | ||
# display closing banner | ||
## | ||
echo | ||
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo "- Your new workspace has been set up." | ||
echo "-" | ||
echo "- Access your workspace in:" | ||
echo "- ${category}/start/${partnername}" | ||
echo "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" | ||
echo "= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =" | ||
echo "= Your new workspace has been set up." | ||
echo "=" | ||
echo "= Access your workspace in:" | ||
echo "= ${category}/start/${partnername}" | ||
echo "= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =" | ||
echo | ||
|
||
|
||
|
@@ -248,6 +297,7 @@ echo | |
# - Terry Smith <[email protected]> | ||
# - Bryan Gartner <[email protected]> | ||
# Revisions: | ||
# - 20230907: Simplified paths; added more checks; clarified prompts | ||
# - 20221213: Removed underscore prefix from generated DC file | ||
# - 20220824: Migrated to common/bin; implemented run location test | ||
# - 20220729: Removed extraneous space; created action preview banner | ||
|
Oops, something went wrong.