yast/yast-yast2

View on GitHub
library/commandline/doc/lan-simple.ycp

Summary

Maintainability
Test Coverage
/****************************************************************************

Copyright (c) 2002 - 2012 Novell, Inc.
All Rights Reserved.

This program is free software; you can redistribute it and/or
modify it under the terms of version 2 of the GNU General Public License as
published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.   See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, contact Novell, Inc.

To contact Novell about this file by physical or electronic mail,
you may find current contact information at www.novell.com

****************************************************************************/
/**
 * File:    clients/lan.ycp
 * Package:    Network configuration
 * Summary:    Network cards main file
 * Authors:    Michal Svec <msvec@suse.cz>
 *
 * $Id$
 *
 * Main file for network card configuration.
 * Uses all other files.
 */

{

/***
 * <h3>Network configuration</h3>
 */

import "CommandLine";
include "network/lan/wizards.ycp";

/**
 * Command line definition
 */
map cmdline = $[
    "help"    : "Configuration of network cards",
    "id"    : "lan",
    "actions"    : $[
    "list" : $[
        "help"    : "display configuration summary",
        "example"    : "lan list configured"
    ],
    "add" : $[
        "help"    : "add a network card" ],
    "delete" : $[
        "help"    : "delete a network card" ]
    ],
    "options" : $[
    "propose" : $[
        "help"    : "propose a configuration",
        "example"    : "lan add propose",
        "type"    : ""
    ],
    "configured" : $[
        "help"    : "list only configured cards"
    ],
    "unconfigured" : $[
        "help"    : "list only not configured cards"
    ],
    "device" : $[
        "help"    : "device ID",
        "type"    : "string",
        "example"    : "lan add device=eth0"
    ],
    "ip" : $[
        "help": "device address",
        "type": "ip"
    ],
    "netmask" : $[
        "help": "network mask",
        "type": "netmask"
    ],
    ],
    "mappings" : $[
    "list"    : [ "configured", "unconfigured" ],
    "add"    : [ "device", "ip", "netmask" ],
    "delete": [ "device" ],
    ]
];


/* The main () */
y2milestone("----------------------------------------");
y2milestone("Lan module started");

/* Initialize the arguments */
if(!CommandLine::Init(cmdline, Args())) {
    y2error("Commandline init failed");
    return false;
}

/* Start GUI */
if(CommandLine::StartGUI()) {
    any ret = nil;
    ret = LanSequence();
    y2debug("ret=%1", ret);
    y2milestone("Lan module finished");
    y2milestone("----------------------------------------");
    return ret;
}

/* Init */
CommandLine::Print("Initializing");
import "Lan";
import "Progress";
CommandLine::Print("Reading");
Progress::off();
Lan::Read();

/* Init variables */
string command = "";
list flags = [];
map options = $[];
string exit = "";
list l = [];

while(!CommandLine::Done()) {
    map m = CommandLine::Command();
    command = m["command"]:"exit";
    options = m["options"]:$[];

    /* list */
    if(command == "list") {
    CommandLine::Print("\nSummary\n");
    string summary = sformat("%1\n", Lan::Summary(false));
    CommandLine::Print(summary);
    }
    /* del */
    else if(command == "delete") {
    string dev = options["device"]:"";
    CommandLine::Print("Deleting: "+dev);

    if(Lan::Delete(dev) && Lan::Commit())
    CommandLine::Print("Success");
    else
    CommandLine::Print("Error");
    }
    /* add */
    else if(command == "add") {
    string dev = options["device"]:"";
    }
    else {
    /* maybe we got "exit" or "quit" */
    if( !CommandLine::Done() ) {
        CommandLine::Print("Unknown command (should not happen)");
        continue;
    }
    }
}

if(!CommandLine::Aborted()) {
    CommandLine::Print("Writing");
    Lan::Write();
    CommandLine::Print("Finish");
}
else {
    CommandLine::Print("Quit (without saving)");
}

/* Finish */
y2milestone("Lan module finished");
y2milestone("----------------------------------------");

/* EOF */
}