| /* | 
 |  * (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); | 
 | } |