- Timestamp:
- Feb 9, 2021, 10:49:12 AM (5 years ago)
- Location:
- trunk/Ohana/src/opihi
- Files:
-
- 4 edited
-
cmd.basic/file.c (modified) (5 diffs)
-
lib.shell/BufferOps.c (modified) (2 diffs)
-
lib.shell/parse.c (modified) (4 diffs)
-
pcontrol/Makefile (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Ohana/src/opihi/cmd.basic/file.c
r41405 r41489 8 8 struct stat fstats; 9 9 10 if ((N = get_argument (argc, argv, "-h"))) goto usage; 11 if ((N = get_argument (argc, argv, "-help"))) goto usage; 12 10 13 int CAN_READ = FALSE; 11 14 if ((N = get_argument (argc, argv, "-can-read"))) { … … 15 18 int CAN_WRITE = FALSE; 16 19 if ((N = get_argument (argc, argv, "-can-write"))) { 20 if (CAN_READ) goto badopts; 17 21 remove_argument (N, &argc, argv); 18 22 CAN_WRITE = TRUE; 19 23 } 24 int GET_STATS = FALSE; 25 if ((N = get_argument (argc, argv, "-stats"))) { 26 if (CAN_READ || CAN_WRITE) goto badopts; 27 remove_argument (N, &argc, argv); 28 GET_STATS = TRUE; 29 } 20 30 21 if ((argc < 2) || (CAN_READ && CAN_WRITE)) { 22 gprint (GP_ERR, "USAGE: file (filename) [var] [-can-read] [-can-write]\n"); 23 gprint (GP_ERR, " NOTE: only one of -can-read or -can-write is allowed\n"); 24 return (FALSE); 25 } 31 if ((argc != 2) && (argc != 3)) goto usage; 26 32 27 33 if (CAN_READ) { … … 30 36 set_int_variable (argv[2], status); 31 37 } else { 32 gprint (GP_ ERR, "file %s can", argv[1]);33 if (!status) gprint (GP_ ERR, "not");34 gprint (GP_ ERR, " be read\n");38 gprint (GP_LOG, "file %s can", argv[1]); 39 if (!status) gprint (GP_LOG, "not"); 40 gprint (GP_LOG, " be read\n"); 35 41 } 36 42 return TRUE; … … 41 47 set_int_variable (argv[2], status); 42 48 } else { 43 gprint (GP_ ERR, "file %s can", argv[1]);44 if (!status) gprint (GP_ ERR, "not");45 gprint (GP_ ERR, " be written\n");49 gprint (GP_LOG, "file %s can", argv[1]); 50 if (!status) gprint (GP_LOG, "not"); 51 gprint (GP_LOG, " be written\n"); 46 52 } 47 53 return TRUE; … … 50 56 status = stat (argv[1], &fstats); 51 57 52 vstat = !status; 58 if (!GET_STATS) { 59 vstat = !status; 60 61 if (argc == 3) { 62 set_int_variable (argv[2], vstat); 63 } else { 64 gprint (GP_LOG, "file %s is ", argv[1]); 65 if (!vstat) gprint (GP_LOG, "not "); 66 gprint (GP_LOG, "found\n"); 67 } 68 return (TRUE); 69 } 70 71 int TimeFormat; 72 time_t TimeReference; 73 74 // use the variable to set the stats fields 75 GetTimeFormat (&TimeReference, &TimeFormat); 53 76 54 77 if (argc == 3) { 55 set_int_variable (argv[2], vstat); 78 char varname[1024]; 79 80 snprintf (varname, 1024, "%s:devID", argv[2]); set_int_variable (varname, fstats.st_dev); 81 snprintf (varname, 1024, "%s:inode", argv[2]); set_int_variable (varname, fstats.st_ino); 82 snprintf (varname, 1024, "%s:mode", argv[2]); set_int_variable (varname, fstats.st_mode); 83 snprintf (varname, 1024, "%s:nlink", argv[2]); set_int_variable (varname, fstats.st_nlink); 84 snprintf (varname, 1024, "%s:uid", argv[2]); set_int_variable (varname, fstats.st_uid); 85 snprintf (varname, 1024, "%s:gid", argv[2]); set_int_variable (varname, fstats.st_gid); 86 snprintf (varname, 1024, "%s:rdev", argv[2]); set_int_variable (varname, fstats.st_rdev); 87 snprintf (varname, 1024, "%s:size", argv[2]); set_int_variable (varname, fstats.st_size); 88 snprintf (varname, 1024, "%s:blksize", argv[2]); set_int_variable (varname, fstats.st_blksize); 89 snprintf (varname, 1024, "%s:blocks", argv[2]); set_int_variable (varname, fstats.st_blocks); 90 91 snprintf (varname, 1024, "%s:atime", argv[2]); set_variable (varname, TimeValue (fstats.st_atim.tv_sec, TimeReference, TimeFormat)); 92 snprintf (varname, 1024, "%s:mtime", argv[2]); set_variable (varname, TimeValue (fstats.st_mtim.tv_sec, TimeReference, TimeFormat)); 93 snprintf (varname, 1024, "%s:ctime", argv[2]); set_variable (varname, TimeValue (fstats.st_ctim.tv_sec, TimeReference, TimeFormat)); 56 94 } else { 57 gprint (GP_ERR, "file %s is ", argv[1]); 58 if (!vstat) gprint (GP_ERR, "not "); 59 gprint (GP_ERR, "found\n"); 95 gprint (GP_LOG, "devID : %d\n", (int) fstats.st_dev); 96 gprint (GP_LOG, "inode : %d\n", (int) fstats.st_ino); 97 gprint (GP_LOG, "mode : %o\n", (int) fstats.st_mode); 98 gprint (GP_LOG, "nlink : %d\n", (int) fstats.st_nlink); 99 gprint (GP_LOG, "uid : %d\n", (int) fstats.st_uid); 100 gprint (GP_LOG, "gid : %d\n", (int) fstats.st_gid); 101 gprint (GP_LOG, "rdev : %d\n", (int) fstats.st_rdev); 102 gprint (GP_LOG, "size : %d\n", (int) fstats.st_size); 103 gprint (GP_LOG, "blksize : %d\n", (int) fstats.st_blksize); 104 gprint (GP_LOG, "blocks : %d\n", (int) fstats.st_blocks); 105 106 char *adate = ohana_sec_to_date (fstats.st_atim.tv_sec); 107 gprint (GP_LOG, "atime : %s\n", adate); 108 free (adate); 109 110 char *mdate = ohana_sec_to_date (fstats.st_mtim.tv_sec); 111 gprint (GP_LOG, "mtime : %s\n", mdate); 112 free (mdate); 113 114 char *cdate = ohana_sec_to_date (fstats.st_ctim.tv_sec); 115 gprint (GP_LOG, "ctime : %s\n", cdate); 116 free (cdate); 60 117 } 61 return (TRUE); 118 return TRUE; 119 120 badopts: 121 gprint (GP_ERR, " NOTE: only one (or none) of -can-read, -can-write, -stats is allowed\n"); 122 123 usage: 124 gprint (GP_ERR, "USAGE: file [var] [-can-read] [-can-write] [-stats]\n"); 125 gprint (GP_ERR, " by default, reports if file exists\n"); 126 gprint (GP_ERR, " -can-read: reports if file exists and can be read\n"); 127 gprint (GP_ERR, " -can-write: reports if file exists and can be written to\n"); 128 gprint (GP_ERR, " -stats: reports if file exists and can be written to\n"); 129 return FALSE; 62 130 } 63 131 -
trunk/Ohana/src/opihi/lib.shell/BufferOps.c
r39233 r41489 278 278 279 279 if (Long) { 280 gprint (GP_LOG, " N name file X Y bytes BP U bzero bscale\n");280 gprint (GP_LOG, " N name file ND X Y Z bytes BP U bzero bscale\n"); 281 281 for (i = 0; i < Nbuffers; i++) { 282 gprint (GP_LOG, "%5d %10s %25s % 5lld %5lld %10lld %3d %1d %10.4e %10.4e\n",283 i, buffers[i][0].name, buffers[i][0].file, 284 (long long) buffers[i][0].header.Naxis[0], (long long) buffers[i][0].header.Naxis[1], 282 gprint (GP_LOG, "%5d %10s %25s %2d %5lld %5lld %5lld %10lld %3d %1d %10.4e %10.4e\n", 283 i, buffers[i][0].name, buffers[i][0].file, buffers[i][0].header.Naxes, 284 (long long) buffers[i][0].header.Naxis[0], (long long) buffers[i][0].header.Naxis[1], (long long) buffers[i][0].header.Naxis[2], 285 285 (long long) buffers[i][0].header.datasize + buffers[i][0].matrix.datasize, buffers[i][0].bitpix, 286 286 buffers[i][0].unsign, buffers[i][0].bzero, buffers[i][0].bscale); … … 289 289 } 290 290 291 gprint (GP_LOG, " N name file X Ybytes\n");291 gprint (GP_LOG, " N name file ND X Y Z bytes\n"); 292 292 for (i = 0; i < Nbuffers; i++) { 293 gprint (GP_LOG, "%5d %10s %25s % 5lld %5lld %10lld\n",294 i, buffers[i][0].name, buffers[i][0].file, 295 (long long) buffers[i][0].header.Naxis[0], (long long) buffers[i][0].header.Naxis[1], 293 gprint (GP_LOG, "%5d %10s %25s %2d %5lld %5lld %5lld %10lld\n", 294 i, buffers[i][0].name, buffers[i][0].file, buffers[i][0].header.Naxes, 295 (long long) buffers[i][0].header.Naxis[0], (long long) buffers[i][0].header.Naxis[1], (long long) buffers[i][0].header.Naxis[2], 296 296 (long long) buffers[i][0].header.datasize + buffers[i][0].matrix.datasize); 297 297 } -
trunk/Ohana/src/opihi/lib.shell/parse.c
r41341 r41489 200 200 } 201 201 202 /* find value for assignment */ 203 V1 = nextcomm (line); 204 if (V1 == (char *) NULL) goto error; 205 if (V1[0] != '=') goto error; 206 V1 ++; 207 208 /*** assign vector element to value ***/ 209 val = dvomath (1, &V1, &size, 0); 210 if (val == (char *) NULL) { 211 print_error (); 212 goto error; 213 } 214 215 /* find vector */ 202 /* find vector or buffer (check for valid element)*/ 216 203 if (isBuffer) { 204 // unknown buffer name 217 205 if ((buf = SelectBuffer (V0, OLDBUFFER, TRUE)) == NULL) goto error; 218 206 free (V0); V0 = (char *) NULL; … … 229 217 if (Nx < 0) Nx += buf[0].header.Naxis[0]; 230 218 if (Ny < 0) Ny += buf[0].header.Naxis[1]; 231 232 fptr = (float *) buf[0].matrix.buffer;233 fptr[Nx + Ny*buf[0].header.Naxis[0]] = atof (val);234 219 } else { 235 220 if ((vec = SelectVector (V0, OLDVECTOR, TRUE)) == NULL) goto error; … … 244 229 } 245 230 if (Nx < 0) Nx += vec[0].Nelements; 231 } 232 233 /* find value for assignment */ 234 V1 = nextcomm (line); 235 if (V1 == (char *) NULL) goto error; 236 if (V1[0] != '=') goto error; 237 V1 ++; 238 239 /*** assign vector (or buffer) element to value ***/ 240 val = dvomath (1, &V1, &size, 0); 241 if (val == NULL) { 242 if (!isBuffer && (vec->type == OPIHI_STR)) { 243 while (OHANA_WHITESPACE (*V1)) V1++; 244 val = strcreate (V1); 245 init_error (); 246 } else { 247 print_error (); 248 goto error; 249 } 250 } 251 252 /* find vector */ 253 if (isBuffer) { 254 fptr = (float *) buf[0].matrix.buffer; 255 fptr[Nx + Ny*buf[0].header.Naxis[0]] = atof (val); 256 } else { 246 257 if (vec[0].type == OPIHI_FLT) { 247 258 vec[0].elements.Flt[Nx] = atof (val); 248 } else { 259 } 260 if (vec[0].type == OPIHI_INT) { 249 261 vec[0].elements.Int[Nx] = atoll (val); 250 262 } 263 if (vec[0].type == OPIHI_STR) { 264 vec[0].elements.Str[Nx] = strcreate (val); 265 } 251 266 } 252 267 goto escape; … … 359 374 360 375 /* case 3: we hunt for '{', and then the first '}' and pass everything 361 in between. no nested {{}}s are allowed! */376 in between. no nested {{}}s are allowed! */ 362 377 363 378 /* thisword ALLOCATES -
trunk/Ohana/src/opihi/pcontrol/Makefile
r37807 r41489 11 11 12 12 # programs may add their own internal requirements here 13 LIBS1 = -l dvo -lkapa -lFITS -lohana14 LIBS2 = -l basiccmd -lshell -ldata13 LIBS1 = -lbasiccmd -lshell -ldata 14 LIBS2 = -ldvo -lkapa -lFITS -lohana 15 15 FULL_CFLAGS = $(BASE_CFLAGS) 16 16 FULL_CPPFLAGS = $(BASE_CPPFLAGS)
Note:
See TracChangeset
for help on using the changeset viewer.
