そのため、ドキュメントを理解することはできませんが、コマンドライン引数を解析するgetopt
モジュールに出くわしました。どういうわけか、なぜこれが私の議論を見ないのか理解できません。--domain example.com
$ ./httpdsetup.py -a -u zack --domain example.com
[('-a', ''), ('-u', '')]
何が表示されるかを確認するために、何がダンプされるかを印刷しopts
ました。以下のコードは、ドキュメントサイトからのほぼ正確な複製です。
def main(argv):
import getopt
try:
opts, args = getopt.getopt(argv, "h:al:ud:v", ["user=", "apache", "lighttpd", "dir=", "domain=", "vhost="])
except getopt.GetoptError:
print_usage()
sys.exit(2)
username = ''
directory = ''
domain = ''
httpd = 'apache'
print(opts)
for opt, arg in opts:
if opt == '-h':
print_usage()
sys.exit()
elif opt in ('-u', '--username'):
username = arg
elif opt in ('-d', '--dir'):
directory = arg
elif opt in ('-v', '--domain', '--vhost'):
domain = arg
elif opt in ('-a', '--apache'):
httpd = 'apache'
elif opt in ('-l', '--lighttpd'):
httpd = 'lighttpd'
else:
print_usage()
sys.exit()
if httpd == 'apache':
create_apache_vhost(domain, directory, username)
elif httpd == 'lighttpd':
create_lighty_vhost(domain, directory, username)
if __name__ == '__main__':
main(sys.argv[1:])