| Index: devserver.py
|
| diff --git a/devserver.py b/devserver.py
|
| index 8abdb8fe66befd2d1c7fa36b7641d5f143e8b655..7cde7a507e16d2b66d801350488c02eb8cb7eb1c 100755
|
| --- a/devserver.py
|
| +++ b/devserver.py
|
| @@ -13,6 +13,8 @@ import sys
|
|
|
| import autoupdate
|
|
|
| +CACHED_ENTRIES=12
|
| +
|
| # Sets up global to share between classes.
|
| global updater
|
| updater = None
|
| @@ -113,6 +115,8 @@ if __name__ == '__main__':
|
| help='serve archived builds only.')
|
| parser.add_option('--board', dest='board',
|
| help='When pre-generating update, board for latest image.')
|
| + parser.add_option('--clear_cache', action="store_true", default=False,
|
| + help='Clear out all cached udpates and exit')
|
| parser.add_option('--client_prefix', dest='client_prefix',
|
| help='Required prefix for client software version.',
|
| default='MementoSoftwareUpdate')
|
| @@ -151,6 +155,22 @@ if __name__ == '__main__':
|
| static_dir = os.path.realpath('%s/static' % devserver_dir)
|
| os.system('mkdir -p %s' % static_dir)
|
|
|
| + cache_dir = os.path.join(static_dir, 'cache')
|
| + cherrypy.log('Using cache directory %s' % cache_dir, 'DEVSERVER')
|
| +
|
| + if options.clear_cache:
|
| + # Clear the cache and exit
|
| + sys.exit(os.system('sudo rm -rf %s' % cache_dir))
|
| +
|
| + if os.path.exists(cache_dir):
|
| + # Clear all but the last N cached updates
|
| + cmd = ('cd %s; ls -1tr | head --lines=-%d | xargs rm -rf' %
|
| + (cache_dir, CACHED_ENTRIES))
|
| + if os.system(cmd) != 0:
|
| + cherrypy.log('Failed to clean up old delta cache files with %s' % cmd,
|
| + 'DEVSERVER')
|
| + sys.exit(1)
|
| +
|
| cherrypy.log('Source root is %s' % root_dir, 'DEVSERVER')
|
| cherrypy.log('Serving from %s' % static_dir, 'DEVSERVER')
|
|
|
|
|