Mercurial > wikked
annotate manage.py @ 123:ac6166453d77
Added ability to get page revisions from the command-line.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 23 Nov 2013 13:31:35 -0800 |
parents | 7c7f7eca51ae |
children | ace48040b01d |
rev | line source |
---|---|
47 | 1 |
2 # Configure a simpler log format. | |
3 from wikked import settings | |
4 settings.LOG_FORMAT = "[%(levelname)s]: %(message)s" | |
55 | 5 settings.UPDATE_WIKI_ON_START = False |
47 | 6 |
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 |
13
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
9 |
47 | 10 # Create the manager. |
11 from flask.ext.script import Manager, prompt, prompt_pass | |
0 | 12 manager = Manager(app) |
13 | |
13
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
14 |
0 | 15 @manager.command |
13
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
16 def users(): |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
17 """Lists users of this wiki.""" |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
18 print "Users:" |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
19 for user in wiki.auth.getUsers(): |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
20 print " - " + user.username |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
21 print "" |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
22 |
47 | 23 |
13
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
24 @manager.command |
101
13249e5ca51c
Big refactor for better database caching:
Ludovic Chabant <ludovic@chabant.com>
parents:
55
diff
changeset
|
25 def user(username=None, password=None): |
13
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
26 """Generates the entry for a new user so you can |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
27 copy/paste it in your `.wikirc`. |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
28 """ |
101
13249e5ca51c
Big refactor for better database caching:
Ludovic Chabant <ludovic@chabant.com>
parents:
55
diff
changeset
|
29 username = username or prompt('Username: ') |
13249e5ca51c
Big refactor for better database caching:
Ludovic Chabant <ludovic@chabant.com>
parents:
55
diff
changeset
|
30 password = password or prompt_pass('Password: ') |
13
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
31 password = app.bcrypt.generate_password_hash(password) |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
32 print "[users]" |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
33 print "%s = %s" % (username, password) |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
34 |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
35 |
30ae685b86df
Added support for authentatication
Ludovic Chabant <ludovic@chabant.com>
parents:
0
diff
changeset
|
36 @manager.command |
121
7c7f7eca51ae
Don't re-cache all pages by default with some CLI commands.
Ludovic Chabant <ludovic@chabant.com>
parents:
112
diff
changeset
|
37 def reset(cache=False): |
47 | 38 """ 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
|
39 """ |
121
7c7f7eca51ae
Don't re-cache all pages by default with some CLI commands.
Ludovic Chabant <ludovic@chabant.com>
parents:
112
diff
changeset
|
40 wiki.reset(cache_ext_data=cache) |
0 | 41 |
42 | |
30
420ff74c2e28
Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
43 @manager.command |
121
7c7f7eca51ae
Don't re-cache all pages by default with some CLI commands.
Ludovic Chabant <ludovic@chabant.com>
parents:
112
diff
changeset
|
44 def update(url=None, cache=False): |
47 | 45 """ Updates the database and the full-text-search index with any |
46 changed/new files. | |
47 """ | |
121
7c7f7eca51ae
Don't re-cache all pages by default with some CLI commands.
Ludovic Chabant <ludovic@chabant.com>
parents:
112
diff
changeset
|
48 wiki.update(url, cache_ext_data=cache) |
47 | 49 |
50 | |
51 @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
|
52 def list(): |
420ff74c2e28
Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
53 """ 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
|
54 """ |
47 | 55 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
|
56 print url |
420ff74c2e28
Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
57 |
420ff74c2e28
Added a shell command to list all the pages in the wiki.
Ludovic Chabant <ludovic@chabant.com>
parents:
13
diff
changeset
|
58 |
47 | 59 @manager.command |
123
ac6166453d77
Added ability to get page revisions from the command-line.
Ludovic Chabant <ludovic@chabant.com>
parents:
121
diff
changeset
|
60 def get(url, force_resolve=False, rev=None): |
47 | 61 """ Gets a page that matches the given URL. |
62 """ | |
101
13249e5ca51c
Big refactor for better database caching:
Ludovic Chabant <ludovic@chabant.com>
parents:
55
diff
changeset
|
63 page = wiki.getPage(url) |
123
ac6166453d77
Added ability to get page revisions from the command-line.
Ludovic Chabant <ludovic@chabant.com>
parents:
121
diff
changeset
|
64 if force_resolve: |
108
5c24e8f8b095
Added support for the `force_resolve` flag.
Ludovic Chabant <ludovic@chabant.com>
parents:
101
diff
changeset
|
65 page._force_resolve = True |
123
ac6166453d77
Added ability to get page revisions from the command-line.
Ludovic Chabant <ludovic@chabant.com>
parents:
121
diff
changeset
|
66 if rev is not None: |
ac6166453d77
Added ability to get page revisions from the command-line.
Ludovic Chabant <ludovic@chabant.com>
parents:
121
diff
changeset
|
67 print page.getRevision(rev) |
ac6166453d77
Added ability to get page revisions from the command-line.
Ludovic Chabant <ludovic@chabant.com>
parents:
121
diff
changeset
|
68 return |
101
13249e5ca51c
Big refactor for better database caching:
Ludovic Chabant <ludovic@chabant.com>
parents:
55
diff
changeset
|
69 print page.text |
47 | 70 |
71 | |
112
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
72 @manager.command |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
73 def linksfrom(url): |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
74 page = wiki.getPage(url) |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
75 for l in page.links: |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
76 print l |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
77 |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
78 |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
79 @manager.command |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
80 def linksto(url): |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
81 page = wiki.getPage(url) |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
82 for l in page.getIncomingLinks(): |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
83 print l |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
84 |
a65cedc183d6
Added more functions to the `manage` CLI tool.
Ludovic Chabant <ludovic@chabant.com>
parents:
108
diff
changeset
|
85 |
0 | 86 if __name__ == "__main__": |
87 manager.run() |