123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #!/usr/bin/env bash
- #
- # update template submodules manually
- # run once in the main folder after the template has been made by tonic
- # Set folder where script will be executed
- #loc=$(dirname $0)
- #projectdir=$(git -C ${loc} rev-parse --show-toplevel)
- #
- #pushd ${loc} > /dev/null
- # get info for gin remote information
- GINinfo="$(gin remotes)"
- Gitadress="$(echo $GINinfo | cut -d'/' -f3)"
- Orga="$(echo $GINinfo | cut -d'/' -f4)"
- repo2="$(echo $GINinfo | cut -d'/' -f5)"
- repo="$(echo $repo2 | cut -d' ' -f1)"
- reposhort="$(echo "${repo/.main}")"
- # readme text
- readmetext="$Gitadress/$Orga/$repo is the parent directory"
- gitign=".DS_Store"
- echo "readme will be $readmetext"
- echo "erase master branch and go to main if there is a main branch"
- gin git checkout main
- gin git branch -D master
- # initialise submodules
- gin git submodule update --init --recursive
- git submodule update --recursive --remote
- # if the template was not initialise before, let's do it
- # new tonic version do that, so this should be obsolete.
- if test -f "03_data/001_raw_data/README_dataraw.md" ;
- then
- echo "submodules in place, happy working!"
- else
- echo "setting up the template for the first time !"
-
- # add readme files, and folders
- echo "$readmetext" >> 03_data/001_raw_data/README_dataraw.md
- echo "$readmetext" >> 04_data_analysis/010_code/README_analysiscode.md
- echo "$readmetext" >> 05_figures/990_shared_figures/README_figures.md
- echo "$readmetext" >> 03_data/001_derived_data/README_dataderived.md
- echo "$readmetext" >> 06_dissemination/README_DISSEMINATION.md
-
- echo "$gitign" >> 03_data/001_raw_data/.gitignore
- echo "$gitign" >> 04_data_analysis/010_code/.gitignore
- echo "$gitign" >> 05_figures/990_shared_figures/.gitignore
- echo "$gitign" >> 03_data/001_derived_data/.gitignore
- echo "$gitign" >> 06_dissemination/.gitignore
-
- mkdir 06_dissemination/01_reports_conferences
- mkdir 06_dissemination/02_manuscripts
- mkdir 06_dissemination/03_other
- touch 06_dissemination/01_reports_conferences/.gitkeep
- touch 06_dissemination/02_manuscripts/.gitkeep
- touch 06_dissemination/03_other/.gitkeep
-
- # add labcommons submodule
- gin git submodule add "../labcommons" 07_misc/labcommons
-
- # push submodule content
- gin git submodule foreach gin init
- gin git submodule foreach gin commit . -m initial commit from template
- gin git submodule foreach gin upload
-
- # arrange parent repository (no rewriting history for security issue)
- gin git commit . -m "initialisation"
- gin upload .
- fi
- if test -f "00repo_needs_initialisation00.txt" ;
- then
- # delete file telling the initialisation need to be done
- rm "00repo_needs_initialisation00.txt"
-
- # add submodule to PI repo
- # get labreports repo and write new folder for the project
- cd ../
- gin get ""$Orga""/labreports""
- cd labreports
- mkdir "$reposhort"
- mkdir "$reposhort/05_figures"
-
-
- # add 2 submodule for figures and dissemination files there
-
- gin git submodule add "../$reposhort.05_figures_990_shared_figures.git" ""$reposhort"/05_figures/990_shared_figures"
- gin git submodule add "../$reposhort.06_dissemination" ""$reposhort"/06_dissemination"
-
- # add a file to tell the user/script to initialise the submodules next time.
-
- echo "submodules need intitialisation due to project "$reposhort"." >> "initialise.txt"
- gin git add "initialise.txt"
-
- # push changes on the server and remove the repo from the computer.
- gin git commit -m "added project $reposhort"
- gin upload
- cd ../
- rm -rf labreports
-
- fi
|