Revision a2337c6d5ece69fc3b28c689ff2ae99ae04d8b73 authored by Sebastian Gutsche on 13 December 2015, 12:56:03 UTC, committed by Sebastian Gutsche on 13 December 2015, 12:56:03 UTC
1 parent 256fe05
Raw File
make_dist_for_homalg.sh
#/bin/bash

packages="4ti2Interface ExamplesForHomalg GaussForHomalg GradedModules homalg IO_ForHomalg MatricesForHomalg PolymakeInterface SCO ToricVarieties Convex Gauss GradedRingForHomalg HomalgToCAS LocalizeRingForHomalg Modules RingsForHomalg ToolsForHomalg"

function jsonval {
    temp=`echo $release_response | sed 's/\\\\\//\//g' | sed 's/[{}]//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | sed 's/\"\:\"/\|/g' | sed 's/[\,]/ /g' | sed 's/\"//g' | grep -w id`
    echo ${temp##*|}
}

current_dir=$(pwd)

for i in $packages; do
  cd $i
  cd ..
  mkdir -p tmp
  git archive --format=tar --output=tmp/${i}.tar --prefix=${i}/ HEAD:${i}
  cd tmp
  tar xf ${i}.tar
  cd ${i}
gap -A -q -b <<EOF
# HACK
MakeReadWriteGlobal("SetPackageInfo");
SetPackageInfo:=function(pkg)
  PrintTo("VERSION",pkg.Version);
end;;
Read("PackageInfo.g");
QUIT;
EOF

  version=$(cat VERSION)
  rm VERSION
  gap -A <<GAPInput
SetPackagePath("${i}", ".");
Read("makedoc.g");
GAPInput
  rm -rf .git*
  rm -f doc/*.{aux,bbl,blg,brf,idx,ilg,ind,lab,log,out,pnr,tex,toc,tst}
  rm -rf bin/
  rm -rf public_html
  cd ..
  
  oauth_token=$(cat ~/.github_shell_token)
  
  echo "Creating release for ${i}"
  ## check wether release is already there
  
  tag_response=$(curl -X GET https://api.github.com/repos/homalg-project/homalg_project/releases/tags/${i}-${version}?access_token=${oauth_token} | grep "Not Found")
  echo "Tag response: ${tag_response}"
  if [ -n "$tag_response" ]; then
      
      ##delete all old releases, just leave three of them
      delete_releases=$(python ${current_dir}/delete_old_releases.py ${i} ${current_dir}/json_data)
      for rel_id in $delete_releases; do
          curl -X DELETE https:///repos/homalg-project/homalg_project/releases/${rel_id}?access_token=${oauth_token}
      done
      
      release_response=$(curl -H "Content-Type: application/json" -X POST --data \
      '{ "tag_name": "'${i}-${version}'", "target_commitish": "master", "name": "'${i}-${version}'", "body": "Release for '${i}'", "draft": false, "prerelease": false }' \
      https://api.github.com/repos/homalg-project/homalg_project/releases?access_token=${oauth_token})
      
      echo "Release response: ${release_response}"
      
      release_id=$(jsonval | sed "s/id:/\n/g" | sed -n 2p | sed "s| ||g")
      
      tar czvf ${i}-${version}.tar.gz ${i}
      curl --fail -s -S -X POST https://uploads.github.com/repos/homalg-project/homalg_project/releases/${release_id}/assets?name=${i}-${version}.tar.gz \
          -H "Accept: application/vnd.github.v3+json" \
          -H "Authorization: token ${oauth_token}" \
          -H "Content-Type: application/tgz" \
          --data-binary @"${i}-${version}.tar.gz"
      
      rm ${i}-${version}.tar.gz
      
      zip -r ${i}-${version}.zip ${i}
      curl --fail -s -S -X POST https://uploads.github.com/repos/homalg-project/homalg_project/releases/${release_id}/assets?name=${i}-${version}.zip \
          -H "Accept: application/vnd.github.v3+json" \
          -H "Authorization: token ${oauth_token}" \
          -H "Content-Type: application/zip" \
          --data-binary @"${i}-${version}.zip"
      
      rm ${i}-${version}.zip
      
  fi
  
  mkdir -p ../gh-pages/${i}
  cd ..
  rm -rf tmp
  cd $current_dir
done

rm -rf json_data

cd gh-pages

for i in $packages; do
  cd ${i}
  git add *
  cd ..
done

for i in $packages; do
  mkdir -p ${i}
  mkdir -p ${i}/doc
  cp -f ../${i}/PackageInfo.g ${i}
  cp -f ../${i}/README ${i}
  cp -r ../${i}/doc/*.{css,html,js,txt} ${i}/doc
done

current_dir=$(pwd)

for i in $packages; do
  cd ${i}
  mkdir -p _data
  cp ../_data/package.yml _data
  gap ../update.g
  cd $current_dir
done

cd _layouts
for i in $packages; do
  sed "s|@@package@@|package${i}|g" < default_template > package${i}.html
done
cd $current_dir

cd _data
echo "package_links:" > packages.yml
for i in $packages; do
  echo "    - name: ${i}" >> packages.yml
done
cd $current_dir

for i in $packages; do
  cp ${i}/_data/package.yml _data/package${i}.yml
  sed "s|@@package@@|package${i}|g" < index_default.template > ${i}/index.md
done

log_output=$(git log -n 1 --oneline | grep "New version of homepage from dist script")

git add *
git commit -a -m "New version of homepage from dist script"
  #git push homalg gh-pages:gh-pages

# git push homalg gh-pages:gh-pages
back to top