Advertisement
mmu_man

mirror_osdrawer.sh

Jan 13th, 2014
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.52 KB | None | 0 0
  1. #!/bin/sh
  2. # dump SCM repos from osdrawer
  3. # Authors: mmu_man, mmadia
  4. # requires: git-svn, svnrdump
  5.  
  6. sleepslice=120
  7.  
  8. svnBaseURL=http://svn.osdrawer.net/
  9. hgBaseURL=http://hg.osdrawer.net/
  10.  
  11. project_list_url="http://web.archive.org/web/20110723234933/http://dev.osdrawer.net/projects"
  12.  
  13. # wget -O projects.html "$project_list_url" || exit 1
  14.  
  15. #grep 'class="project "' projects.html | sed 's,.*/projects/,,;s,".*,,' > projects.txt
  16.  
  17. svnProjects="\
  18.     beezer\
  19.     befar\
  20.     beget\
  21.     behappy\
  22.     benes\
  23.     berexx\
  24.     bescreencapture\
  25.     beshare\
  26.     betex\
  27.     betick\
  28.     bme\
  29.     burnitnow\
  30.     bweathertt\
  31.     caya-gpl-protocols\
  32.     caya\
  33.     clipup\
  34.     clockwerk\
  35.     colors\
  36.     contacts-kit\
  37.     copynametoclipboard\
  38.     cupshaiku\
  39.     dockbert\
  40.     driveencryption\
  41.     ducksaver\
  42.     etoolkit\
  43.     fakevideoplugin\
  44.     feedkit\
  45.     finance\
  46.     gmn\
  47.     haiku-api-examples\
  48.     haiku-l10n\
  49.     haiku-mono\
  50.     haiku-on-a-stick\
  51.     haiku-wifi\
  52.     haikubuildomatic\
  53.     hare\
  54.     hexkeycode\
  55.     imkit\
  56.     infopopper\
  57.     internalmidi\
  58.     jabber4beos\
  59.     jammin\
  60.     joystickutilizer\
  61.     kirilla\
  62.     lava\
  63.     libwalter\
  64.     minimizeall\
  65.     mmu-sp-plugins\
  66.     niue\
  67.     paragraph\
  68.     pecobeat\
  69.     pecorename\
  70.     perl-haiku-kits\
  71.     photograbber\
  72.     projectconcept\
  73.     qt-beos\
  74.     rename\
  75.     restartdaemon\
  76.     scannerbe\
  77.     scrittore\
  78.     sheepsaver\
  79.     shredder\
  80.     simplyvorbis\
  81.     sum-it\
  82.     takenotes\
  83.     thememanager\
  84.     trackergrep\
  85.     trackerscript\
  86.     universalscroller\
  87.     vbl\
  88.     vmwaddons\
  89.     vncviewer\
  90.     whisperbenet\
  91.     wolle\
  92.     wx-haiku\
  93.     xraydock\
  94.     zetareinstaller\
  95.     "
  96.  
  97. hgProjects="\
  98.     bel4ka\
  99.     bezilla\
  100.     codecreator\
  101.     cups\
  102.     hd44780\
  103.     hyperstudio\
  104.     osdrawer\
  105.     osdrawer-redmine\
  106.     pe-editor\
  107.     q3-for-haiku\
  108.     rtcw-for-haiku\
  109.     sane\
  110.     serviceskit\
  111.     "
  112.  
  113. #XXX:DEBUG
  114. #echo "behappy" > projects.txt
  115.  
  116. coffee() {
  117.         echo '### Coffee break'
  118.         sync
  119.         sleep $sleepslice
  120. }
  121.  
  122. owd="$PWD"
  123.  
  124. for p in $svnProjects $hgProjects; do
  125.     test -e "$p/.done" && continue
  126.     echo "### Trying to mirror project '$p'..."
  127.     mkdir -p "$p"
  128.  
  129.     cd "$p"
  130.  
  131.     # test for an svn repos
  132.     svnurl="$svnBaseURL$p"
  133.     if wget -q -O /dev/null "$svnurl"; then
  134.         echo "### Projet '$p' has an svn"
  135.  
  136.         echo "### Dumping..."
  137.         # make a dump
  138.         svnrdump dump "$svnurl" > svn.dump || echo "${p}-svn-dump" >> failed
  139.         #echo "Loading dump to local copy..."
  140.         #mkdir svn-copy
  141.         #svnrdump load "file://$PWD/svn-copy" < svn.dump || read
  142.         echo "### Compressing dump..."
  143.         bzip2 svn.dump
  144.         #mkdir svn-copy
  145.         #cd svn-copy
  146.         # first make an svn master copy
  147.         #python ../../svn2svn.py -a "http://svn.osdrawer.net/$p" "file://$PWD"
  148.         #cd ..
  149.         # now make 2 git clones, one assuming normal branches, one without
  150.  
  151.         coffee
  152.  
  153.         echo "### Making a git-svn clone (with std branches)..."
  154.         git svn clone -s --preserve-empty-dirs -- "$svnurl" svn-clone-branches || echo "${p}-svn-git-std" >> failed
  155.         echo "### converting svn:ignore to .gitignore..."
  156.         (cd svn-clone-branches; git svn show-ignore > .gitignore)
  157.  
  158.         coffee
  159.  
  160.         echo "### Making a git-svn clone (full)..."
  161.         git svn clone --preserve-empty-dirs -- "$svnurl" svn-clone-full || echo "${p}-svn-git-full" >> failed
  162.         echo "### converting svn:ignore to .gitignore..."
  163.         (cd svn-clone-full; git svn show-ignore > .gitignore)
  164.  
  165.         touch ".done"
  166.     else
  167.         echo "### Projet '$p' has no svn"
  168.     fi
  169.  
  170.     coffee
  171.  
  172.     # test for an svn repos
  173.     hgurl="$hgBaseURL$p"
  174.     if wget -q -O /dev/null "$hgurl"; then
  175.         echo "### Projet '$p' has an hg"
  176.         echo "### Making an hg clone..."
  177.  
  178.         hg clone "$hgurl" "hg-clone" || echo "${p}-hg" >> failed ;
  179.  
  180.         touch ".done"
  181.     else
  182.         echo "### Projet '$p' has no hg"
  183.     fi
  184.  
  185.     cd "$owd"
  186.     #touch "$p/.done"
  187. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement