/**
 * Copyright 2017, Google, Inc.
 * Licensed under the Apache License, Version 2.0 (the "License")
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

'use strict';

const Configstore = require('configstore');
const path = require('path');

const defaults = require('./defaults.json');
const pkg = require('../package.json');

const config = module.exports = new Configstore(path.join(pkg.name, '/config'), defaults);

// Config migration
if (config.get('restHost') || config.get('grpcHost') || config.get('supervisorHost')) {
  config.set('host', config.get('restHost') || config.get('grpcHost') || config.get('supervisorHost'));
  config.delete('restHost');
  config.delete('grpcHost');
  config.delete('supervisorHost');
}

/**
 * Copyright 2017, Google, Inc.
 * Licensed under the Apache License, Version 2.0 (the "License")
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

'use strict';

const Configstore = require('configstore');
const path = require('path');

const defaults = require('./defaults.json');
const pkg = require('../package.json');

const config = module.exports = new Configstore(path.join(pkg.name, '/config'), defaults);

// migrate legacy {rest,grpc,supervisor}Host to host
const host = ['grpcHost', 'supervisorHost'].reduce((host, key) => {
  return host !== 'localhost' ? host : config.get(key);
}, config.get('restHost'));

config.set('host', host);
config.delete('restHost');
config.delete('grpcHost');
config.delete('supervisorHost');

Migrate `{rest,grpc,supervisor}Host` to `host` (#99)