2011-03-04 23:53:19 +03:00
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
/***
This file is part of systemd .
Copyright 2010 Lennart Poettering
systemd is free software ; you can redistribute it and / or modify it
2012-04-12 02:20:58 +04:00
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation ; either version 2.1 of the License , or
2011-03-04 23:53:19 +03:00
( at your option ) any later version .
systemd 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
2012-04-12 02:20:58 +04:00
Lesser General Public License for more details .
2011-03-04 23:53:19 +03:00
2012-04-12 02:20:58 +04:00
You should have received a copy of the GNU Lesser General Public License
2011-03-04 23:53:19 +03:00
along with systemd ; If not , see < http : //www.gnu.org/licenses/>.
* * */
# include <unistd.h>
# include <stdlib.h>
2012-04-12 17:07:24 +04:00
# include <stdio.h>
# include <getopt.h>
# include <errno.h>
2011-03-04 23:53:19 +03:00
2012-04-12 16:28:43 +04:00
# include "machine-id-setup.h"
2011-03-04 23:53:19 +03:00
# include "log.h"
2012-04-12 17:07:24 +04:00
# include "build.h"
static int help ( void ) {
printf ( " %s [OPTIONS...] \n \n "
" Initialize /etc/machine-id from a random source. \n \n "
" -h --help Show this help \n "
" --version Show package version \n " ,
program_invocation_short_name ) ;
return 0 ;
}
static int parse_argv ( int argc , char * argv [ ] ) {
enum {
ARG_VERSION = 0x100
} ;
static const struct option options [ ] = {
{ " help " , no_argument , NULL , ' h ' } ,
{ " version " , no_argument , NULL , ARG_VERSION } ,
{ NULL , 0 , NULL , 0 }
} ;
int c ;
assert ( argc > = 0 ) ;
assert ( argv ) ;
while ( ( c = getopt_long ( argc , argv , " hqcv " , options , NULL ) ) > = 0 ) {
switch ( c ) {
case ' h ' :
help ( ) ;
return 0 ;
case ARG_VERSION :
puts ( PACKAGE_STRING ) ;
puts ( DISTRIBUTION ) ;
puts ( SYSTEMD_FEATURES ) ;
return 0 ;
case ' ? ' :
return - EINVAL ;
default :
log_error ( " Unknown option code %c " , c ) ;
return - EINVAL ;
}
}
if ( optind < argc ) {
help ( ) ;
return - EINVAL ;
}
return 1 ;
}
2011-03-04 23:53:19 +03:00
int main ( int argc , char * argv [ ] ) {
2012-04-12 17:07:24 +04:00
int r ;
2011-03-04 23:53:19 +03:00
log_set_target ( LOG_TARGET_AUTO ) ;
log_parse_environment ( ) ;
log_open ( ) ;
2012-04-12 17:07:24 +04:00
r = parse_argv ( argc , argv ) ;
if ( r < = 0 )
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS ;
2011-03-04 23:53:19 +03:00
return machine_id_setup ( ) < 0 ? EXIT_FAILURE : EXIT_SUCCESS ;
}