|  | /* | 
|  | * (C) Copyright 2000 | 
|  | * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | 
|  | * | 
|  | * See file CREDITS for list of people who contributed to this | 
|  | * project. | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU General Public License as | 
|  | * published by the Free Software Foundation; either version 2 of | 
|  | * the License, or (at your option) any later version. | 
|  | * | 
|  | * 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, write to the Free Software | 
|  | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 
|  | * MA 02111-1307 USA | 
|  | */ | 
|  |  | 
|  | /* | 
|  | * Command line user interface to firmware (=U-Boot) environment. | 
|  | * | 
|  | * Implements: | 
|  | *	fw_printenv [ name ... ] | 
|  | *		- prints the values of the environment variables | 
|  | *		  "name", or the whole environment if no names are | 
|  | *		  specified | 
|  | *	fw_setenv name [ value ... ] | 
|  | *		- If a name without any values is given, the variable | 
|  | *		  with this name is deleted from the environment; | 
|  | *		  otherwise, all "value" arguments are concatenated, | 
|  | *		  separated by sinlge blank characters, and the | 
|  | *		  resulting string is assigned to the environment | 
|  | *		  variable "name" | 
|  | */ | 
|  |  | 
|  | #include <stdio.h> | 
|  | #include <string.h> | 
|  | #include <stdlib.h> | 
|  | #include "fw_env.h" | 
|  |  | 
|  | #define	CMD_PRINTENV	"fw_printenv" | 
|  | #define CMD_SETENV	"fw_setenv" | 
|  |  | 
|  | int | 
|  | main(int argc, char *argv[]) | 
|  | { | 
|  | char *p; | 
|  | char *cmdname = *argv; | 
|  |  | 
|  | if ((p = strrchr (cmdname, '/')) != NULL) { | 
|  | cmdname = p + 1; | 
|  | } | 
|  |  | 
|  | if (strcmp(cmdname, CMD_PRINTENV) == 0) { | 
|  |  | 
|  | fw_printenv (argc, argv); | 
|  |  | 
|  | return (EXIT_SUCCESS); | 
|  |  | 
|  | } else if (strcmp(cmdname, CMD_SETENV) == 0) { | 
|  |  | 
|  | if (fw_setenv (argc, argv) != 0) | 
|  | return (EXIT_FAILURE); | 
|  |  | 
|  | return (EXIT_SUCCESS); | 
|  | } | 
|  |  | 
|  | fprintf (stderr, | 
|  | "Identity crisis - may be called as `" CMD_PRINTENV | 
|  | "' or as `" CMD_SETENV "' but not as `%s'\n", | 
|  | cmdname); | 
|  | return (EXIT_FAILURE); | 
|  | } |