https://github.com/cablehead/lastopt
https://github.com/cablehead/lastopt
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/cablehead/lastopt
- Owner: cablehead
- License: mit
- Created: 2012-03-08T19:31:01.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2014-05-21T01:54:18.000Z (about 12 years ago)
- Last Synced: 2025-03-25T05:05:47.350Z (about 1 year ago)
- Language: Python
- Homepage:
- Size: 164 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
lastopt
=======
lastopt is a Python utility for quickly creating command line utilities using
function and class introspection.
Example
-------
```python
#!/usr/bin/env python
import lastopt
def install(package, dependencies=False):
print "install %s, with dependencies: %s" % (
package, dependencies and 'yes' or 'no')
class Env(object):
def __init__(self, name):
self.name = name
def start(self, package):
print "starting %s.%s" % (self.name, package)
lastopt.main([install, Env])
```
$ ./command
Usage: ./command COMMAND [ARGS]
The available commands are:
env
install
$ ./command install --help
Usage: ./command install [options]
Options:
-h, --help show this help message and exit
--nodependencies unset --dependencies
-d, --dependencies (default: False)
$ ./command install redis -d
install redis, with dependencies: yes
$ ./command env production
Usage: ./command env production COMMAND [ARGS]
The available commands are:
start
$ ./command env production start frontend
starting production.frontend
History
-------
lastopt is directly inspired by Simon Willison's clever introspection hack from
a few years back: https://github.com/simonw/optfunc