]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blame - modules/cmds.py
- also log script's name (if given)
[projects/pld-ftp-admin.git] / modules / cmds.py
CommitLineData
e3aced8e
MM
1# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
2
459e7d48
MM
3import os
4import time
5
6CmdError="CmdError"
7
e3aced8e
MM
8def parse(con):
9 if '\0' not in con.data:
10 return
11 cmds=con.data.split('\0')[:-1]
12
13 for cmd in cmds:
14 con.data=con.data[len(cmd)+1:]
15 cmdname=cmd[:4]
16 if cmdname in cmdlist:
17 cmdlist[cmdname](con, cmd[5:])
18 else:
19 raise CmdError
20 # TODO: log this
21
22locks={}
23
24def lock(con, arg, hard):
25 if arg not in locks:
26 locks[arg]=hard
27 con.sock.send("OK")
28 elif locks[arg]:
29 con.sock.send("HARD") # Hard lock - you can go get a cup of tea
30 else:
31 con.sock.send("SOFT") # Soft lock - try in a second or two
32
33
b55905f2 34def cmd_unlock(con, arg):
e3aced8e
MM
35 if arg in locks:
36 del locks[arg]
37
b55905f2 38def cmd_lock_soft(con, arg):
e3aced8e
MM
39 lock(con, arg, False)
40
b55905f2 41def cmd_lock_hard(con, arg):
e3aced8e
MM
42 lock(con, arg, True)
43
459e7d48
MM
44logfile=open(os.environ['HOME']+'/pld-ftp-admin/var/log', 'a')
45
b55905f2
MM
46def cmd_log(con, msg):
47 logfile.write('%s [%s] -- %s\n' % (time.strftime('%Y-%m-%d %H:%M:%S'),
48 con.name, msg))
459e7d48 49 logfile.flush()
e3aced8e 50
b55905f2
MM
51def cmd_name(con, name):
52 con.name=name
53
54cmdlist={'lcks':cmd_lock_soft, 'lckh':cmd_lock_hard, 'ulck':cmd_unlock,
55 'log1':cmd_log, 'name':cmd_name}
e3aced8e 56
This page took 0.053995 seconds and 4 git commands to generate.