annotate manage.py @ 97:fa8f18c9be9a

Made the resolver handle errors a bit better. Fixed bad behaviour with how parameters are passed and used for includes.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 21 Apr 2013 08:10:15 -0700
parents 494f3c4660ed
children 13249e5ca51c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
1
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
2 # Configure a simpler log format.
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
3 from wikked import settings
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
4 settings.LOG_FORMAT = "[%(levelname)s]: %(message)s"
55
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 52
diff changeset
5 settings.UPDATE_WIKI_ON_START = False
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
6
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
7 # Create the app and the wiki.
45
f63a2062fb99 Moved application init to a standalone `web` module.
Ludovic Chabant <ludovic@chabant.com>
parents: 30
diff changeset
8 from wikked.web import app, wiki
52
8167b9b6925a Don't open/close connections all the time in command-line.
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
9 from wikked.page import Page
8167b9b6925a Don't open/close connections all the time in command-line.
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
10 from wikked.db import conn_scope
13
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
11
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
12 # Create the manager.
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
13 from flask.ext.script import Manager, prompt, prompt_pass
0
c946f4facfa2 Initial commit.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
14 manager = Manager(app)
c946f4facfa2 Initial commit.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
15
13
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
16
0
c946f4facfa2 Initial commit.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
17 @manager.command
13
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
18 def users():
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
19 """Lists users of this wiki."""
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
20 print "Users:"
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
21 for user in wiki.auth.getUsers():
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
22 print " - " + user.username
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
23 print ""
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
24
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
25
13
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
26 @manager.command
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
27 def new_user():
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
28 """Generates the entry for a new user so you can
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
29 copy/paste it in your `.wikirc`.
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
30 """
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
31 username = prompt('Username: ')
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
32 password = prompt_pass('Password: ')
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
33 password = app.bcrypt.generate_password_hash(password)
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
34 print "[users]"
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
35 print "%s = %s" % (username, password)
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
36
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
37
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
38 @manager.command
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
39 def reset():
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
40 """ Re-generates the database and the full-text-search index.
13
30ae685b86df Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents: 0
diff changeset
41 """
52
8167b9b6925a Don't open/close connections all the time in command-line.
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
42 with conn_scope(wiki.db):
8167b9b6925a Don't open/close connections all the time in command-line.
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
43 wiki.db.reset(wiki.getPages(from_db=False, factory=Page.factory))
8167b9b6925a Don't open/close connections all the time in command-line.
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
44 wiki.index.reset(wiki.getPages())
0
c946f4facfa2 Initial commit.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
45
c946f4facfa2 Initial commit.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
46
30
420ff74c2e28 Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents: 13
diff changeset
47 @manager.command
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
48 def update():
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
49 """ Updates the database and the full-text-search index with any
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
50 changed/new files.
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
51 """
52
8167b9b6925a Don't open/close connections all the time in command-line.
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
52 with conn_scope(wiki.db):
8167b9b6925a Don't open/close connections all the time in command-line.
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
53 wiki.db.update(wiki.getPages(from_db=False, factory=Page.factory))
8167b9b6925a Don't open/close connections all the time in command-line.
Ludovic Chabant <ludovic@chabant.com>
parents: 47
diff changeset
54 wiki.index.update(wiki.getPages())
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
55
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
56
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
57 @manager.command
30
420ff74c2e28 Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents: 13
diff changeset
58 def list():
420ff74c2e28 Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents: 13
diff changeset
59 """ Lists page names in the wiki.
420ff74c2e28 Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents: 13
diff changeset
60 """
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
61 for url in wiki.db.getPageUrls():
30
420ff74c2e28 Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents: 13
diff changeset
62 print url
420ff74c2e28 Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents: 13
diff changeset
63
420ff74c2e28 Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents: 13
diff changeset
64
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
65 @manager.command
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
66 def get(url):
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
67 """ Gets a page that matches the given URL.
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
68 """
55
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 52
diff changeset
69 with conn_scope(wiki.db):
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 52
diff changeset
70 page = wiki.getPage(url)
494f3c4660ed Various changes:
Ludovic Chabant <ludovic@chabant.com>
parents: 52
diff changeset
71 print page.text
47
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
72
86ee1b696070 Big refactoring:
Ludovic Chabant <ludovic@chabant.com>
parents: 45
diff changeset
73
0
c946f4facfa2 Initial commit.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
74 if __name__ == "__main__":
c946f4facfa2 Initial commit.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
75 manager.run()