From 7a16e0f91bc90d70afe94b21f0cb0a4f40f1de23 Mon Sep 17 00:00:00 2001 From: Wolfgang Spraul Date: Mon, 26 Nov 2012 05:43:31 +0100 Subject: [PATCH] commit qi-update-all script along with rest of schhist --- schhist/schhist-qi-update-all | 180 ++++++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100755 schhist/schhist-qi-update-all diff --git a/schhist/schhist-qi-update-all b/schhist/schhist-qi-update-all new file mode 100755 index 0000000..9733cc4 --- /dev/null +++ b/schhist/schhist-qi-update-all @@ -0,0 +1,180 @@ +#!/bin/bash + +# +# Only run one instance of this script. +# + +if pidof -x $(basename $0) > /dev/null; then + for p in $(pidof -x $(basename $0)); do + if [ $p -ne $$ ]; then + echo "Script $0 is already running: exiting" + exit + fi + done +fi + +# +# the assumption is we run in /home/schhist/eda-tools/schhist and +# other relevant dirs are /home/schhist/git and /home/schhist/output +# +cd ../.. + +[ ! -d git ] && mkdir git + +# +# pull_all is set once a day in case we are missing a commit event +# + +if [ -e git/pull_all ]; then + rm git/pull_all + pull_all=1 +else + pull_all=0 +fi + +# eeschema segfaults if DISPLAY is not set +export DISPLAY=:0 + +# +# $1 url to git repo +# $2 local directory name +# + +function is_git_updated +{ + if [ ! -d git/$2 ]; then + rm -f git/$2.last git/$2.pull_needed + (cd git && git clone $1 $2) + elif [ $pull_all -gt 0 ] || [ -e git/$2.pull_needed ]; then + rm -f git/$2.pull_needed + (cd git/$2 && git pull) + fi + if [ -e git/$2.last ]; then + LAST_COMMIT=`cat git/$2.last` + fi + CURRENT_COMMIT=`cd git/$2 && git rev-parse @{0}` + if [ "$LAST_COMMIT" != "$CURRENT_COMMIT" ]; then + echo $CURRENT_COMMIT > git/$2.last + return 1 + fi + return 0 +} + +# +# run_schhist2web parameters +# -n -f -S -c cache: will be passed to schhist2web +# --order order: will become SCHHIST_ORDER +# --title title: will become SCHHIST_TITLE +# $1 local git directory +# $2 root schematic +# $3 output directory +# $4 remote url home +# $5 remote url commit template +# + +function run_schhist2web +{ + unset SCHHIST_TITLE + unset SCHHIST_ORDER + while true; do + case "$1" in + -n | -f | -S) schhist2web_options="$schhist2web_options $1" + shift;; + -c) schhist2web_options="$schhist2web_options $1 $2" + shift 2;; + --order) export SCHHIST_ORDER=$2; shift 2;; + --title) export SCHHIST_TITLE=$2; shift 2;; + *) break;; + esac + done + export SCHHIST_HOME_URL=$4 + export SCHHIST_COMMIT_TEMPLATE=$5 + export SCHHIST_ADDLIBS=device + ./eda-tools/schhist/schhist2web $schhist2web_options git/$1 $2 $3 +} + +# +# main +# + +is_git_updated git://projects.qi-hardware.com/kicad-libs.git kicad-libs + +is_git_updated git://projects.qi-hardware.com/ben-wpan.git ben-wpan || ( + + run_schhist2web -S --title ben-wpan/atusb --order atusb:USB:RF \ + ben-wpan atusb/atusb.sch output/atusb \ + http://projects.qi-hardware.com/p/ben-wpan/ \ + "http://projects.qi-hardware.com/p/ben-wpan/source/commit/{}/" + + run_schhist2web -S --title ben-wpan/cntr \ + ben-wpan cntr/cntr.sch output/cntr \ + http://projects.qi-hardware.com/p/ben-wpan/ \ + "http://projects.qi-hardware.com/p/ben-wpan/source/commit/{}/" + + run_schhist2web -S --title ben-wpan/atben \ + ben-wpan atben/atben.sch output/atben \ + http://projects.qi-hardware.com/p/ben-wpan/ \ + "http://projects.qi-hardware.com/p/ben-wpan/source/commit/{}/" +) + +is_git_updated https://github.com/milkymist/board-m1.git board-m1 || ( + + run_schhist2web -S --title "Milkymist One" --order m1:POWER:FPGA_Dec:FPGA_BANK0:FPGA_BANK1:FPGA_BANK2:FPGA_BANK3:EXPANSION_RESET:DRAM:NOR_FLASH:AUDIO:DVI-I:VIDEO_IN:MISC_CONTROL:ETHERNET:USB_A-B:USB_C-D:USB_E-F:MISC \ + board-m1 r4/m1.sch output/board-m1 \ + https://github.com/milkymist/board-m1/ \ + "https://github.com/milkymist/board-m1/commit/{}" +) + +is_git_updated https://github.com/kristianpaul/m1-gps-expansion.git m1-gps-expansion || ( + + run_schhist2web -S --title "M1 GPS expansion board" \ + m1-gps-expansion gps.sch output/m1-gps-expansion \ + https://github.com/kristianpaul/m1-gps-expansion/ \ + "https://github.com/kristianpaul/m1-gps-expansion/commit/{}" + +) + +is_git_updated git://projects.qi-hardware.com/m1.git m1 || ( + + run_schhist2web -S --title "Milkymist One JTAG-serial" \ + m1 jtag-serial/usb_jtag.sch output/m1-jtag-serial \ + http://projects.qi-hardware.com/p/m1/ \ + "http://projects.qi-hardware.com/p/m1/source/commit/{}/" +) + +is_git_updated git://projects.qi-hardware.com/ben-blinkenlights.git ben-blinkenlights || ( + + run_schhist2web -S --title "Ben Blinkenlights" \ + ben-blinkenlights bbl.sch output/ben-blinkenlights \ + http://projects.qi-hardware.com/p/ben-blinkenlights/ \ + "http://projects.qi-hardware.com/p/ben-blinkenlights/source/commit/{}/" + + run_schhist2web -S --title "UBB VGA (ben-blinkenlights)" \ + ben-blinkenlights ubb-vga/ubb-vga.sch output/ubb-vga \ + http://projects.qi-hardware.com/p/ben-blinkenlights/ \ + "http://projects.qi-hardware.com/p/ben-blinkenlights/source/commit/{}/" +) + +is_git_updated git://projects.qi-hardware.com/board-qi-avt2.git board-qi-avt2 || ( + + run_schhist2web -S --title AVT2 \ + board-qi-avt2 main/Qi_AVT2.sch output/board-qi-avt2 \ + http://projects.qi-hardware.com/p/board-qi-avt2/ \ + "http://projects.qi-hardware.com/p/board-qi-avt2/source/commit/{}/" +) + +is_git_updated git://projects.qi-hardware.com/f32xbase.git f32xbase || ( + + run_schhist2web -S --title c2ben \ + f32xbase c2ben/c2ben.sch output/f32xbase_c2ben \ + http://projects.qi-hardware.com/p/f32xbase/ \ + "http://projects.qi-hardware.com/p/f32xbase/source/commit/{}/" +) + +is_git_updated git://projects.qi-hardware.com/wernermisc.git wernermisc || ( + + run_schhist2web -S --title labsw \ + wernermisc labsw/labsw.sch output/labsw \ + http://projects.qi-hardware.com/p/wernermisc/ \ + "http://projects.qi-hardware.com/p/wernermisc/source/commit/{}/" +)