"""
KDE tags:

KDE 4.0.0 r757456
KDE 4.0.1 r768945
KDE 4.0.2 r780207
KDE 4.0.3 r790918
"""
import sys, os, time

svn_path = "svn://anonsvn.kde.org/home/kde/"
svn_name = "kde-svn-"

gnome_svn_path = "http://svn.gnome.org/svn/"
gnome_svn_name = "gnome-svn-"

gnome_modules = " accerciser alacarte alleyoop anjuta art-web asbestos assetmlweb asyncworker at-poke at-spi atk atomato atomix babl bakery balsa banshee banter beagle beast bigboard blam blogs-web bookmark-applet bookworm bprobe bprof brasero bug-buddy bugmasters bugzilla-newer bugzilla.gnome.org build byzanz cairoio camorama camtrack capuchin cheese chessclock chronojump cifrado coaster conduit conglomerate contact-lookup-applet cowbell criawips cupid cvs-web CWordHelper damned-lies dashboard dasher dbus-hook dbus-inspector denzil deskbar-applet deskscribe desktop-data-model devhelp devilspie dia dia-web divifund dogtail dogtail-tests drgeo drivel drwright eazel-tools eel eggcups ekiga empathy eog eog-plugins epiphany epiphany-extensions epiphany-mono esound evince evo-conversation evolution evolution-brainread evolution-caldav evolution-data-server evolution-exchange evolution-jescs evolution-monoembed evolution-rss evolution-scalix evolution-sharp evolution-webcal evolution-xmltv f-spot fantasdic fast-user-switch-applet file-roller firestarter flow foiegras foocanvas foundation-web gail galeon gamin garnome gazpacho gbrainy gcalctool gci gcompris gconf gconf-apoc gconf-editor gdesklets gdesklets-extras gdip-pixbuf-loader gdl gdm gdome2 gecko-embed gedit gedit-plugins gegl gegl-web genius gfax gfloppy gftp ghex gimmie gimp gimp-data-extras gimp-freetype gimp-gap gimp-help-2 gimp-perl gimp-plugin-template gimp-resource-repository gimp-ruby gimp-tiny-fu gimp-web gimp-web-devel gio gio-standalone giulia giv glade glade-- glade-web glade3 gle glib glib-gio glib-java glibmm glightoff glom gmime gnet gnome-alsamixer gnome-applets gnome-art-tool gnome-audio gnome-backgrounds gnome-blog gnome-bluetooth gnome-braille gnome-build gnome-chess gnome-commander gnome-common gnome-control-center gnome-cookbook gnome-cups-manager gnome-db-web gnome-desktop gnome-devel-docs gnome-doc-utils gnome-docu gnome-games gnome-games-deprecated gnome-games-extra-data gnome-gecko-embed gnome-hello gnome-i18n gnome-icon-theme gnome-icon-theme-extras gnome-jabber gnome-keyring gnome-keyring-manager gnome-live gnome-lokkit gnome-mag gnome-main-menu gnome-media gnome-menus gnome-mime-data gnome-mount gnome-mud gnome-nds-thumbnailer gnome-netstatus gnome-nettool gnome-network gnome-packagekit gnome-panel gnome-panel-extensions gnome-perl-introspection gnome-pilot gnome-pilot-conduits gnome-pkgview gnome-power-manager gnome-printer-add gnome-python gnome-python-desktop gnome-python-extras gnome-raw-thumbnailer gnome-reset gnome-scan gnome-schedule gnome-screensaver gnome-session gnome-session-manager gnome-settings-daemon gnome-sharing gnome-smproxy gnome-speech gnome-spell gnome-startup-profiling gnome-subtitles gnome-system-monitor gnome-system-tools gnome-terminal gnome-test-specs gnome-themes gnome-themes-extras gnome-torrent gnome-user-docs gnome-user-share gnome-utils gnome-vfs gnome-vfs-monikers gnome-volume-manager gnome-web-photo gnomebr-web gnomefr-web gnomeicu gnomemm gnomemm-website gnomeradio gnomeweb-plone gnomeweb-wml gnopernicus gnumeric gob gobject-introspection gobject-npapi goffice gok goobox gopersist gossip gparted gperfmeter gppthtml gromit gruler gshrooms gswitchit_plugins gtetrinet gthumb gtk+ gtk-doc gtk-engines gtk-web gtkglarea gtkhtml gtkhtml2 gtkieembed gtkimageviewer gtkmathview gtkmm gtkmm-documentation gtkmm-root gtkmozembedmm gtksourceview gtksourceviewmm gtkunique gtkvts gtranslator gturing guadec-web gucharmap guikachu gvfs gw-web gwget gyrus halloween hardware-monitor hipo hippo-canvas horizon im-canna intltool istanbul java-access-bridge jhbuild jhfarmer json-glib jumpnbumpmenu kanjipad kbdraw krb5-auth-dialog last-exit libart_lgpl libbacon libbonobo libbonoboui libbtctl libcm libcroco libegg libepc libgail-gnome libgconf-bridge libgconf-java libgda libgee libgircclient libglade libglade-java libgnetwork libgnome libgnome-java libgnomecanvas libgnomecups libgnomedb libgnomekbd libgnomeprint libgnomeprintui libgnomeservice libgnomeui libgnomevfs-java libgsf libgswitchit libgtk-java libgtkmozembed-java libgtop libguniqueapp libgweather libical libIDL libinotify libipoddevice libmimedir libnotifymm liboobs library-web libredcarpet librep librsvg libsigc++2 libsounds libsoup libvte-java libwnck libxml++ libxml2 libxslt livecd-project local-export-daemon loudmouth lsr ludwig mail-web mango marlin mcatalog medusa meld memprof memprof-web mergeant metacity mhonarc microtinder mlview Mocca monkey-bubble monster-masher mousetweaks mozilla-bonobo msm muine muine-shell murrine nautilus nautilus-actions nautilus-cd-burner nautilus-gtkhtml nautilus-image-converter nautilus-locked-folder nautilus-media nautilus-open-terminal nautilus-python nautilus-rc nautilus-revisioning nautilus-rpm nautilus-sendto nautilus-share nautilus-vcs nemiver nemo netspeed network-manager-applet NetworkManager online-desktop ontv ooo-build ORBit2 orbitcpp orca pan pan2 pango pango-profile paperbox passepartout pessulus phonemgr pitivi planet-web planner podsleuth policykit-gnome popt porting-doc present pybank pybliographer pygnome-hello pygobject pygtk pygtk-docs pygtk-web pygtksourceview pyorbit pyspi quick-lounge-applet rc-python-libs rcd rcd-modules rcd-mp regexxer release-notes releng rep-gtk resapplet rhythmbox rug sabayon sarma sawfish seahorse search-party silky silky-www siobhan snark socorro sodipodi sound-juicer soylent straw strongwind svn-migration svn-web swfdec-gnome sysadmin-bin sysprof tasque telegnome tepache timeline tomboy torrent-web totem totem-pl-parser tracker usability-web vala valadoc vicious-extensions viewcvs-web vinagre vino vmx-manager vte wallpaper-web web web-devel-2 web-gtkorg web-mirror wiki-web xchat-gnome xdg-user-dirs-gtk xmlsec yarrr yelp zenity"

#for mod in gnome_modules.split():
#    print "Module: '"+ mod.strip() + "'"

#sys.exit()

#log_path

def getLog(revrange, revfile):
	cmd = "svn log --xml -r " + revrange + " " + svn_path + " > "
	outfile = "logs/" + svn_name + revfile + ".xml"
	full_cmd = cmd + outfile
	print full_cmd
	os.system(cmd + outfile)
	print outfile + " written"

def getGnomeLog(revrange, revfile):
    print "Logging to " + revfile,
    for mod in gnome_modules.split():
        print mod
        cmd = "svn log --xml -r " + revrange + " " + gnome_svn_path + mod + " >> "
        outfile = "logs/gnome/" + gnome_svn_name + revfile + ".xml"
        full_cmd = cmd + outfile
        os.system(cmd + outfile)
        print full_cmd
    print outfile + " written"

for year in (2004, 2005, 2006, 2007, 2008):
#for year in ([2008]):
	for month in range(1,12):
		old_date = str(year) + "-" + str(month)   + "-" + "1"
		new_date = str(year) + "-" + str(month+1) + "-" + "1"
		# In the future?
		if (year >= time.localtime()[0] and month >= time.localtime()[1]):
			pass
		else:
			revrange = "{" + old_date + "}:{" + new_date + "}"
			revfile = str(year) + "-" + str(month)
			getGnomeLog(revrange, revfile)
			if month == 11:
				revrange = "{" + new_date + "}:{" + str(year+1) + "-" + "1-1}"
				revfile = str(year) + "-12"
				getGnomeLog(revrange, revfile)


    