Created
September 15, 2017 21:59
-
-
Save tobiasvl/d35545b6ed3a5ab1b418355ff3b7944b to your computer and use it in GitHub Desktop.
Cerebrum development shell
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #! /local/bin/python | |
| # vim: set fileencoding=utf-8 : | |
| # Generelt oppsett | |
| import rlcompleter | |
| import readline | |
| import code | |
| from mx import DateTime | |
| # Cerebrumoppsett | |
| import cerebrum_path | |
| import cereconf | |
| from Cerebrum.Utils import Factory | |
| from Cerebrum import Errors | |
| from Cerebrum.modules import CLHandler | |
| logger = Factory.get_logger('console') | |
| # Skriv ut litt info om hva som skjer | |
| print """\033[92mCurrent config:\033[37m | |
| \033[94mimport cerebrum_path, cereconf | |
| from Cerebrum.Utils import Factory | |
| from Cerebrum import Errors | |
| from Cerebrum.modules import CLHandler | |
| logger = Factory.get_logger('console') | |
| db = Factory.get('Database')() | |
| cl = CLHandler.CLHandler(db) | |
| db.cl_init(change_program='cereutvsh')\033[37m""" | |
| ## Hent db og init cl | |
| db = Factory.get('Database')() | |
| cl = CLHandler.CLHandler(db) | |
| db.cl_init(change_program='cereutvsh') | |
| # Definererer variabelnavn og klasser. | |
| # Dette kan potensielt sett brukes til å | |
| # autopuppulere variable, som en del av en | |
| # auto-test-config-miljø-sak | |
| attrs = {'en': 'Entity', | |
| 'pe': 'Person', | |
| 'di': 'Disk', | |
| 'co': 'Constants', | |
| 'ac': 'Account', | |
| 'ou': 'OU', | |
| 'gr': 'Group', | |
| 'pu': 'PosixUser', | |
| 'pg': 'PosixGroup'} | |
| inited = {} | |
| for x in attrs: | |
| try: | |
| inited[x] = Factory.get(attrs[x])(db) | |
| except ValueError, e: | |
| print "\033[1;31m%s\033[0;37m" % e | |
| except ImportError, e: | |
| print "\033[1;31m%s\033[0;37m" % e | |
| finally: | |
| print "\033[1;94m%s = Factory.get('%s')(db)\033[0;37m" % (x, attrs[x]) | |
| locals().update(inited) | |
| del inited | |
| del attrs | |
| # Vi setter opp tab-completion. Må da bruke space for | |
| # å definere scope | |
| readline.parse_and_bind('tab:complete') | |
| # Disse linjene kan gi deg fine farger på promt. | |
| # Her er det verdt å merke seg at kontrollkarakterene for å | |
| # sette farger på promptet er lagt inn mellom \001 og \002. | |
| # \001 og \002 angir at karakterene mellom disse to karakterene | |
| # ikke skal telles av readline. Uten disse blir ikke readline | |
| # mindre hyggelig å bruke. | |
| code.sys.ps1 = '\001\033[1;95m\002>>>\001\033[0;37m\002 ' | |
| code.sys.ps2 = '\001\033[1;93m\002...\001\033[0;37m\002 ' | |
| # Start den interaktive sesjonen | |
| code.interact(local=locals()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment