33 lines
651 B
Python
33 lines
651 B
Python
|
|
import subprocess
|
|
import shlex
|
|
|
|
def run_ipset(command, *args, **kw):
|
|
use_sudo = kw.get('use_sudo', True)
|
|
|
|
if use_sudo:
|
|
ipset_cmd = 'sudo ipset'
|
|
else:
|
|
ipset_cmd = 'ipset'
|
|
|
|
full_command = '{ipset} {command} {args}'.format(
|
|
ipset=ipset_cmd,
|
|
command=command,
|
|
args=' '.join(args)
|
|
)
|
|
|
|
proc = subprocess.run(
|
|
shlex.split(full_command),
|
|
stdout=subprocess.PIPE,
|
|
timeout=2,
|
|
check=True
|
|
)
|
|
|
|
#proc = subprocess.Popen(
|
|
# shlex.split(full_command),
|
|
# stdout=subprocess.PIPE
|
|
#)
|
|
|
|
#(output, error) = proc.communicate(timeout=2)
|
|
|
|
return proc |