plugins/mod_version.lua

Wed, 13 Jan 2010 00:04:38 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Wed, 13 Jan 2010 00:04:38 +0000
changeset 2796
1e287badd033
parent 1646
21bcc7b8b4d8
child 2923
b7049746bd29
permissions
-rw-r--r--

prosodyctl: Use mode r+ for opening the file so 1) it fails if the file doesn't exist 2) we have write access to lock it

1523
841d61be198f Remove version number from copyright headers
Matthew Wild <mwild1@gmail.com>
parents: 1312
diff changeset
1 -- Prosody IM
760
90ce865eebd8 Update copyright notices for 2009
Matthew Wild <mwild1@gmail.com>
parents: 759
diff changeset
2 -- Copyright (C) 2008-2009 Matthew Wild
90ce865eebd8 Update copyright notices for 2009
Matthew Wild <mwild1@gmail.com>
parents: 759
diff changeset
3 -- Copyright (C) 2008-2009 Waqas Hussain
519
cccd610a0ef9 Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents: 517
diff changeset
4 --
758
b1885732e979 GPL->MIT!
Matthew Wild <mwild1@gmail.com>
parents: 704
diff changeset
5 -- This project is MIT/X11 licensed. Please see the
b1885732e979 GPL->MIT!
Matthew Wild <mwild1@gmail.com>
parents: 704
diff changeset
6 -- COPYING file in the source package for more information.
519
cccd610a0ef9 Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents: 517
diff changeset
7 --
cccd610a0ef9 Insert copyright/license headers
Matthew Wild <mwild1@gmail.com>
parents: 517
diff changeset
8
188
0d9f03009b8a mod_version is here
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 local st = require "util.stanza";
0d9f03009b8a mod_version is here
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10
1646
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
11 module:add_feature("jabber:iq:version");
421
63be85693710 Modules now sending disco replies
Waqas Hussain <waqas20@gmail.com>
parents: 314
diff changeset
12
803
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
13 local version = "the best operating system ever!";
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
14
1645
8ce5da8d24a0 mod_version: Use the module API to read configuration options instead of configmanager
Waqas Hussain <waqas20@gmail.com>
parents: 1523
diff changeset
15 if not module:get_option("hide_os_type") then
803
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
16 if os.getenv("WINDIR") then
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
17 version = "Windows";
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
18 else
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
19 local uname = io.popen("uname");
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
20 if uname then
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
21 version = uname:read("*a");
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
22 else
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
23 version = "an OS";
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
24 end
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
25 end
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
26 end
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
27
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
28 version = version:match("^%s*(.-)%s*$") or version;
5a64649f4b94 mod_version: Operating system detection. Disable with hide_os_type = true in config
Matthew Wild <mwild1@gmail.com>
parents: 760
diff changeset
29
1646
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
30 local query = st.stanza("query", {xmlns = "jabber:iq:version"})
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
31 :tag("name"):text("Prosody"):up()
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
32 :tag("version"):text(prosody.version):up()
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
33 :tag("os"):text(version);
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
34
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
35 module:hook("iq/host/jabber:iq:version:query", function(event)
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
36 local stanza = event.stanza;
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
37 if stanza.attr.type == "get" and stanza.attr.to == module.host then
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
38 event.origin.send(st.reply(stanza):add_child(query));
21bcc7b8b4d8 mod_version: Rewritten to use new API. Added reply caching, and fixed some issues.
Waqas Hussain <waqas20@gmail.com>
parents: 1645
diff changeset
39 return true;
219
f06e97f525bc Fixed some whitespace.
Waqas Hussain <waqas20@gmail.com>
parents: 189
diff changeset
40 end
704
ef8d0d339172 mod_version: Removed and rearranged some code
Waqas Hussain <waqas20@gmail.com>
parents: 615
diff changeset
41 end);

mercurial