338: Removed depreciated code from ipa (CLI) script

This commit is contained in:
Jason Gerard DeRose committed 2008-09-24 08:07:20 +00:00
1 parent 744406958d
commit ac7bdf8790
1 file changed
+2 -148
+2 -148
View File
@@ -20,160 +20,14 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
""" """
Command Line Interface to IPA. Command Line Interface for IPA Administration.
Just proof of concept stuff in here right now. The CLI functionality is implemented in ipalib/cli.py
""" """
import sys
from ipalib import api from ipalib import api
from ipalib.cli import CLI from ipalib.cli import CLI
import ipalib.load_plugins import ipalib.load_plugins
cli = CLI(api) cli = CLI(api)
cli.run() cli.run()
sys.exit()
TAB_WIDTH = 2
def _(msg):
"""
Dummy gettext function for testing.
"""
return msg
class row(object):
def __init__(self, tab, c1, c2=None):
assert type(tab) is int
assert type(c1) in (str, int)
assert type(c2) is str or c2 is None
self.tab = tab
self.c1 = c1
self.c2 = c2
def __len__(self):
return len(str(self.c1))
def pretty_print(self, just):
tab = ' ' * (self.tab * TAB_WIDTH)
if self.c2 is None:
print '%s%s' % (tab, self.c1)
else:
if type(self.c1) is int:
c1 = str(self.c1).rjust(just)
else:
c1 = self.c1.ljust(just)
print '%s%s %s' % (tab, c1, self.c2)
def pretty_print(rows):
rows = tuple(rows)
def get_lengths():
yield 0
for r in rows:
if r.c2 is not None:
yield len(r)
max_len = max(get_lengths())
for r in rows:
r.pretty_print(max_len)
def print_commands():
print 'Commands:'
m = api.max_cmd_len
for cmd in api.cmd:
print ' %s %s' % (str(cmd).ljust(m), cmd.get_doc(_))
def print_help(cmd):
print 'Help on %s' % cmd
def print_api():
def iter_api(tab):
for name in api:
ns = getattr(api, name)
yield row(
tab,
name,
repr(ns),
)
for i in ns:
yield row(
tab + 1,
i.name,
repr(i)
)
def iter_obj(tab):
for obj in api.obj:
yield row(
tab,
obj.name,
repr(obj),
)
for (n, f) in [('mthd', '.%s()'), ('prop', '.%s')]:
ns = getattr(obj, n)
yield row(
tab + 1,
n,
repr(ns),
)
for attr in ns:
yield row(
tab + 2,
f % attr.name,
repr(attr),
)
def iter_summary(tab):
for name in api:
ns = getattr(api, name)
yield row(
tab,
len(ns),
name
)
def print_heading(h):
print '\n%s:' % h
print '-' * (len(h) + 1)
tab = 1
print_heading('API Overview')
pretty_print(iter_api(tab))
print_heading('Object Details')
pretty_print(iter_obj(tab))
print_heading('Summary')
pretty_print(iter_summary(tab))
if len(sys.argv) < 2:
print_commands()
print 'Usage: ipa COMMAND [OPTIONS]'
sys.exit(2)
name= sys.argv[1]
if name == '_api_':
print_api()
sys.exit()
elif name not in api.cmd:
print_commands()
print 'ipa: ERROR: unknown command %r' % name
sys.exit(2)
api.cmd[name]()