~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to bin/ivle-loadsampledata

  • Committer: Matt Giuca
  • Date: 2009-12-15 07:34:17 UTC
  • Revision ID: matt.giuca@gmail.com-20091215073417-u19ctikuy4sstyco
ivle-loadsampledata: Checks out a user's Subversion repository, adds a few files, then commits.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
import sys
25
25
import os
 
26
import shutil
26
27
import optparse
27
28
import subprocess
28
29
import logging
29
30
import readline
 
31
import warnings
30
32
 
31
33
import psycopg2
32
34
 
33
35
from ivle.config import Config
 
36
import ivle.svn
34
37
 
35
38
logging.basicConfig(
36
39
    format='%(asctime)s %(levelname)s %(message)s',
154
157
# (This will create fresh user dirs and repos because the jails were empty.)
155
158
logging.info("Building sample users' filesystems and repos.")
156
159
subprocess.check_call(["bin/ivle-refreshfilesystem"])
 
160
 
 
161
config = Config()
 
162
dbconfig = config['database']
 
163
 
 
164
# Populate some of the users' Subversion repos
 
165
def temp_checkout(svnclient, username):
 
166
    """Checkout user `username`'s repo to a temporary directory.
 
167
    @return: The temporary workspace directory.
 
168
    """
 
169
    # Do the checkout over HTTP, since we then use the user's own credentials
 
170
    repourl = config['urls']['svn_addr'] + '/users/' + username
 
171
    # Ignore warnings about the use of tempnam
 
172
    warnings.simplefilter('ignore')
 
173
    tempdir = os.tempnam()
 
174
    warnings.resetwarnings()
 
175
    svnclient.checkout(repourl, tempdir)
 
176
    return tempdir
 
177
 
 
178
logging.info("Populating student repositories")
 
179
 
 
180
svnclient = ivle.svn.create_auth_svn_client_autopass("studenta")
 
181
workspace = temp_checkout(svnclient, "studenta")
 
182
dirname = os.path.join(workspace, "stuff")
 
183
filename = os.path.join(dirname, "hello.py")
 
184
if not os.path.isdir(dirname):
 
185
    os.makedirs(dirname)
 
186
svnclient.add(dirname, force=True)
 
187
# XXX Copy files from a sample directory
 
188
f = open(filename, "w")
 
189
f.write("""\
 
190
# Hello IVLE, by Alice Student
 
191
# CGI program -- Prints CGI headers, then HTML output
 
192
 
 
193
print "Content-Type: text/html"
 
194
print
 
195
print "<html><body><p>Hello, world!</p></body></html>"
 
196
""")
 
197
f.close()
 
198
svnclient.add(filename, force=True)
 
199
svnclient.checkin(workspace, "Added some files")
 
200
shutil.rmtree(workspace)