[Pkg-wmaker-commits] [wmppp.app] 86/120: wmppp.app: Add new command line options.
Doug Torrance
dtorrance-guest at moszumanska.debian.org
Thu Aug 27 12:04:38 UTC 2015
This is an automated email from the git hooks/post-receive script.
dtorrance-guest pushed a commit to branch master
in repository wmppp.app.
commit 4baf267b1c57752c28d7aac08c1d6f1db3767c4b
Author: Doug Torrance <dtorrance at monmouthcollege.edu>
Date: Tue May 19 22:31:08 2015 -0500
wmppp.app: Add new command line options.
We add command line options for the user to change the start, stop, speed,
ifdown, and stampfile settings at runtime. This closes a Debian wishlist
bug [1].
Note that, in order to have the command line options overwrite the
defaults set in the configuration file, we split the command line parsing
code into a new function (parse_cmdline()). We then merged main() and
wmppp_routine().
We document the new options in the help text and in the man page. We also
take the opportunity to reformat the help text for the -i option and add
the -geometry option to the man page.
[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=293839
---
wmppp.1 | 32 +++++++++++++++++++-----------
wmppp.c | 70 ++++++++++++++++++++++++++++++++++++-----------------------------
2 files changed, 60 insertions(+), 42 deletions(-)
diff --git a/wmppp.1 b/wmppp.1
index 3374801..451ce15 100644
--- a/wmppp.1
+++ b/wmppp.1
@@ -5,16 +5,7 @@
wmppp \- Graphically monitor the average PPP load
.P
.SH SYNOPSIS
-.B wmppp
-.RB [\| \-display
-.IR <display\ name> \|]
-.RB [\| \-t \|]
-.RB [\| \-u
-.IR <update\ rate> \|]
-.RB [\| \-i
-.IR <device> \|]
-.RB [\| \-h \|]
-.RB [\| \-v \|]
+.B wmppp [OPTIONS]
.SH DESCRIPTION
\fBwmppp.app\fP displays a dynamic representation of the load on the
PPP line on a 64x64 miniwindow. It also starts and stops the
@@ -25,6 +16,9 @@ traffic on the interface is also monitored.
.B \-display <display\ name>
name of display to use
.TP
+.B \-geometry +XPOS+YPOS
+initial window position
+.TP
.B \-t
sets the on-line timer to display MM:SS instead of the default HH:MM.
.TP
@@ -37,6 +31,21 @@ choose the net device (ppp1, ippp0, etc.) to monitor. (Note that this
feature is EXPERIMENTAL and should be used with caution. Bug reports
are welcomed.)
.TP
+.B \-speed <cmd>
+command to report connection speed
+.TP
+.B \-start <cmd>
+command to connect
+.TP
+.B \-stop <cmd>
+command to disconnect
+.TP
+.B \-ifdown <cmd>
+command to redial
+.TP
+.B \-stampfile <path>
+file used to calculate uptime
+.TP
.B \-h
displays a command line summary
.TP
@@ -44,7 +53,8 @@ displays a command line summary
displays the version number.
.SH CONFIGURATION
The configuration file (see below) may contain any of the following
-key-value pairs. The format is \fIkey: value\fP.
+key-value pairs. The format is \fIkey: value\fP. Note that these values will be
+overwritten by the corresponding command line options.
.TP
.I start
The program that starts the connection
diff --git a/wmppp.c b/wmppp.c
index a1f1196..61eeeba 100644
--- a/wmppp.c
+++ b/wmppp.c
@@ -258,24 +258,24 @@ void SetOffLED(int);
void ButtonUp(int);
void ButtonDown(int);
-void wmppp_routine(int, char **);
-
int get_statistics(long *, long *, long *, long *);
void get_ppp_stats(struct ppp_stats *cur);
int stillonline(char *);
+char *start_action = NULL;
+char *stop_action = NULL;
+char *speed_action = NULL;
+char *ifdown_action = NULL;
+char *stamp_file = NULL;
- /********/
- /* Main */
-/********/
+ /**********************/
+ /* Parse Command Line */
+/**********************/
-int main(int argc, char *argv[]) {
+int parse_cmdline(int argc, char *argv[]) {
int i;
-
- /* Parse Command Line */
-
ProgName = argv[0];
if (strlen(ProgName) >= 5)
ProgName += (strlen(ProgName) - 5);
@@ -298,21 +298,28 @@ int main(int argc, char *argv[]) {
}
break;
case 'i' :
- if (!argv[i+1]) {
+ if (!strcmp(arg+1, "i"))
+ active_interface = argv[++i];
+ else if (!strcmp(arg+1, "ifdown"))
+ ifdown_action = argv[++i];
+ else {
usage();
exit(1);
}
- /* following removed to allow experiments with
- * new devices, i.e. ippp
- */
-#if 0
- if (strncmp(argv[i+1], "ppp", 3)) {
+ break;
+ case 's' :
+ if (!strcmp(arg+1, "speed"))
+ speed_action = argv[++i];
+ else if (!strcmp(arg+1, "start"))
+ start_action = argv[++i];
+ else if (!strcmp(arg+1, "stop"))
+ stop_action = argv[++i];
+ else if (!strcmp(arg+1, "stampfile"))
+ stamp_file = argv[++i];
+ else {
usage();
exit(1);
}
-#endif
- active_interface = argv[i+1];
- i++;
break;
case 't' :
TimerDivisor = 1;
@@ -341,22 +348,14 @@ int main(int argc, char *argv[]) {
}
}
- wmppp_routine(argc, argv);
-
return 0;
}
- /*****************/
- /* wmppp_routine */
-/*****************/
-
-char *start_action = NULL;
-char *stop_action = NULL;
-char *speed_action = NULL;
-char *ifdown_action = NULL;
-char *stamp_file = NULL;
+ /********/
+ /* Main */
+/********/
-void wmppp_routine(int argc, char **argv) {
+int main(int argc, char **argv) {
rckeys wmppp_keys[] = {
{ "start", &start_action },
@@ -434,6 +433,8 @@ void wmppp_routine(int argc, char **argv) {
strcpy(temp, "/etc/wmppprc.fixed");
parse_rcfile(temp, wmppp_keys);
+ parse_cmdline(argc, argv);
+
/* Open the display */
createXBMfromXPM(wmppp_mask_bits, wmppp_master_xpm, wmppp_mask_width, wmppp_mask_height);
@@ -664,6 +665,7 @@ void wmppp_routine(int argc, char **argv) {
ts.tv_nsec = 50000000L;
nanosleep(&ts, NULL);
}
+ return 0;
}
/*******************************************************************************\
@@ -881,9 +883,15 @@ void usage(void) {
fprintf(stderr, "-display <display name>\n");
fprintf(stderr, "-geometry +XPOS+YPOS initial window position\n");
fprintf(stderr, "-h this help screen\n");
- fprintf(stderr, "-i <device> (ppp0, ppp1, etc) EXPERIMENTAL! Please send bugreports!\n");
+ fprintf(stderr, "-i <device> (ppp0, ppp1, etc) EXPERIMENTAL! Please send\n");
+ fprintf(stderr, " bugreports!\n");
fprintf(stderr, "-t set the on-line timer to MM:SS instead of HH:MM\n");
fprintf(stderr, "-u <update rate> (1..10), default 5 seconds\n");
+ fprintf(stderr, "-speed <cmd> command to report connection speed\n");
+ fprintf(stderr, "-start <cmd> command to connect\n");
+ fprintf(stderr, "-stop <cmd> command to disconnect\n");
+ fprintf(stderr, "-ifdown <cmd> command to redial\n");
+ fprintf(stderr, "-stampfile <path> file used to calculate uptime\n");
fprintf(stderr, "-v print the version number\n");
fprintf(stderr, "\n");
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-wmaker/wmppp.app.git
More information about the Pkg-wmaker-commits
mailing list