tadd command line arguments for help and version - slidergrid - grid of elastic sliders on a frictional surface
(HTM) git clone git://src.adamsgaard.dk/slidergrid
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 5d6e81a04a1e2fe6151185a4afeab15f67fc41b7
(DIR) parent f7efea53cfef992b109b9f461eecbd5d6fa0edac
(HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
Date: Wed, 16 Mar 2016 15:01:22 -0700
add command line arguments for help and version
Diffstat:
M slidergrid/main.c | 53 ++++++++++++++++++++++++++++++
M slidergrid/simulation.c | 29 +++++++++++++++--------------
M slidergrid/simulation.h | 1 +
3 files changed, 69 insertions(+), 14 deletions(-)
---
(DIR) diff --git a/slidergrid/main.c b/slidergrid/main.c
t@@ -1,17 +1,70 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include "slider.h"
#include "grid.h"
#include "simulation.h"
+const char* VERSION = "beta-0.1";
+
+void print_usage(char* argv0)
+{
+ printf("%s: simulate a grid of bonded sliders\n"
+ "webpage: https://github.com/anders-dc/slidergrid\n"
+ "usage: %s [OPTION[S]]\n"
+ "options:\n"
+ " -h, --help\t\tprint this information\n"
+ " -V, --version \tprint version information and exit\n"
+ , argv0, argv0);
+}
+
+void print_version(char* argv0)
+{
+ printf("%s: simulate a grid of bonded sliders\n"
+ "webpage: https://github.com/anders-dc/slidergrid\n"
+ "version: %s\n"
+ "author: Anders Damsgaard, adamsgaard@ucsd.edu\n"
+ "This software is free software, see LICENSE for details.\n"
+ , argv0, VERSION);
+}
int main(int argc, char** argv)
{
int i;
+ // default values of command-line flags
+ int verbose = 0;
+
+ // parse command-line arguments
+ for (i=1; i<argc; i++) {
+
+ if (strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) {
+ print_usage(argv[0]);
+ return 0;
+ }
+
+ if (strcmp(argv[i], "-V") == 0 || strcmp(argv[i], "--version") == 0) {
+ print_version(argv[0]);
+ return 0;
+ }
+
+
+
+ }
+
+
+
+
+
+
+
+
// external function which defines the simulation setup and parameters
simulation sim = setup_simulation();
+ if (verbose == 1)
+ sim.verbose = 1;
+
// set initial values for the sliders
for (i=0; i<sim.N; i++)
initialize_slider_values(sim.sliders[i]);
(DIR) diff --git a/slidergrid/simulation.c b/slidergrid/simulation.c
t@@ -3,6 +3,21 @@
#include "slider.h"
#include "simulation.h"
+simulation create_simulation()
+{
+ simulation sim;
+ sim.N = 0;
+ sim.time = 0.0;
+ sim.time_end = 0.0;
+ sim.dt = 0.1;
+ sim.iteration = 0;
+ sim.bond_length_limit = 0;
+ sim.id = "unnamed";
+ sim.file_interval = 0.0;
+ sim.verbose = 0;
+ return sim;
+}
+
int check_simulation_values(const simulation sim)
{
int return_status = 0;
t@@ -63,20 +78,6 @@ int check_simulation_values(const simulation sim)
return return_status;
}
-simulation create_simulation()
-{
- simulation sim;
- sim.N = 0;
- sim.time = 0.0;
- sim.time_end = 0.0;
- sim.dt = 0.1;
- sim.iteration = 0;
- sim.bond_length_limit = 0;
- sim.id = "unnamed";
- sim.file_interval = 0.0;
- return sim;
-}
-
Float find_time_step(const slider* sliders, const int N, const Float safety)
{
Float smallest_mass = 1.0e20;
(DIR) diff --git a/slidergrid/simulation.h b/slidergrid/simulation.h
t@@ -13,6 +13,7 @@ typedef struct {
Float bond_length_limit;
char* id;
Float file_interval;
+ int verbose;
} simulation;
// create simulation with default values