mittorn
6 years ago
2 changed files with 50 additions and 0 deletions
@ -0,0 +1,47 @@ |
|||||||
|
#!/usr/bin/env python |
||||||
|
# encoding: utf-8 |
||||||
|
# Copyright (c) 2019 mittorn |
||||||
|
|
||||||
|
''' |
||||||
|
Reconfigure |
||||||
|
|
||||||
|
Store/load configuration user input |
||||||
|
|
||||||
|
Usage: |
||||||
|
def options(opt): |
||||||
|
opt.load('reconfigure') |
||||||
|
|
||||||
|
def configure(conf): |
||||||
|
conf.load('reconfigure') |
||||||
|
|
||||||
|
./waf configure --reconfigure |
||||||
|
''' |
||||||
|
|
||||||
|
from waflib import Configure, Logs, Options, Utils, ConfigSet |
||||||
|
import os |
||||||
|
|
||||||
|
import optparse |
||||||
|
STORE_PATH = 'build/configuration.py' |
||||||
|
|
||||||
|
def options(opt): |
||||||
|
opt.add_option('--rebuild-cache', dest='rebuild_cache', default=False, action='store_true', help='load previous configuration') |
||||||
|
opt.add_option('--reconfigure', dest='reconfigure', default=False, action='store_true', help='load and update configuration') |
||||||
|
|
||||||
|
def configure(conf): |
||||||
|
store_data = ConfigSet.ConfigSet() |
||||||
|
options = vars(conf.options) |
||||||
|
environ = conf.environ |
||||||
|
if conf.options.reconfigure or conf.options.rebuild_cache: |
||||||
|
store_data.load(STORE_PATH) |
||||||
|
if conf.options.reconfigure: |
||||||
|
for o in options: |
||||||
|
if options[o]: store_data['OPTIONS'][o] = options[o] |
||||||
|
store_data['ENVIRON'].update(environ) |
||||||
|
store_data.store(STORE_PATH) |
||||||
|
conf.environ = store_data['ENVIRON'] |
||||||
|
conf.options = optparse.Values(store_data['OPTIONS']) |
||||||
|
else: |
||||||
|
store_data['OPTIONS'] = vars(conf.options) |
||||||
|
store_data['ENVIRON'] = conf.environ |
||||||
|
store_data.store(STORE_PATH) |
||||||
|
|
Loading…
Reference in new issue