#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Copyright (C) 2018-present ScyllaDB
#

#
# SPDX-License-Identifier: AGPL-3.0-or-later

import argparse
from scylla_blocktune import *

if __name__ == "__main__":
    ap = argparse.ArgumentParser('Tune filesystems for ScyllaDB')
    ap.add_argument('--set-nomerges', metavar='VAL', dest='nomerges',
                    help='Overwrite nomerges parameter')
    ap.add_argument('--filesystem', metavar='PATH', action='append', dest='fs', default=[],
                    help='Tune filesystem containing PATH')
    ap.add_argument('--dev', metavar='PATH', action='append', dest='dev', default=[],
                    help='Tune device node PATH')
    ap.add_argument('--config', metavar='YAML', action='append', dest='yaml', default=[],
                    help='Process given scylla.yaml')

    args = ap.parse_args()

    if not args.yaml and not args.fs and not args.dev:
        tune_yaml('/etc/scylla/scylla.yaml', args.nomerges)
    else:
        for yaml in args.yaml:
            tune_yaml(yaml, args.nomerges)
        for fs in args.fs:
            tune_fs(fs, args.nomerges)
        for dev in args.dev:
            tune_dev(dev, args.nomerges)
