Annotation of OpenXM/src/asir-contrib/packages/src/misc.rr, Revision 1.2
1.2 ! takayama 1: /* $OpenXM: OpenXM/src/asir-contrib/packages/src/misc.rr,v 1.1 2001/08/22 01:52:44 takayama Exp $ */
1.1 takayama 2:
3: Misc_ox_work_dir_created = 0$
4: Misc_ox_file_name = 0$
5: def get_pid() {
6: /* It should return the process id.
7: This is a dummy function. */
8: return 1;
9: }
10: /* ox_work_dir() returns
11: ~/OpenXM_tmp/pid
12: If this direcotry does not exists, it creates the directory.
13: If the environmental variable OpenXM_tmp is set, the value
14: will be used.
15: */
16: def ox_work_dir() {
17: extern Misc_ox_work_dir_created;
1.2 ! takayama 18: if (ox_getenv("OpenXM_tmp") == 0) {
! 19: Work_home = ox_getenv("HOME")+"/OpenXM_tmp";
1.1 takayama 20: }else{
1.2 ! takayama 21: Work_home = ox_getenv("OpenXM_tmp");
1.1 takayama 22: }
23: Work = Work_home+"/"+rtostr(get_pid());
24:
25: if (!Misc_ox_work_dir_created) {
26: /* Unix dependent code to create a directory. */
27: if (shell("test -d "+Work_home) != 0) {
28: print("Working direcotry "+Work_home+" will be created.");
29: if (shell("mkdir "+Work_home) != 0) {
30: error("Could not create the directory "+Work_home);
31: }
32: }
33: if (shell("test -d "+Work) != 0) {
34: print("Working direcotry "+Work+" will be created.");
35: if (shell("mkdir "+Work) != 0) {
36: error("Could not create the directory "+Work);
37: }
38: }
39: Misc_ox_work_dir_created = 1;
40: }
41: return Work;
42: }
43:
44: def ox_remove_work_dir() {
1.2 ! takayama 45: if (ox_getenv("OpenXM_tmp") == 0) {
! 46: Work_home = ox_getenv("HOME")+"/OpenXM_tmp";
1.1 takayama 47: }else{
1.2 ! takayama 48: Work_home = ox_getenv("OpenXM_tmp");
1.1 takayama 49: /* Safety precaution. */
1.2 ! takayama 50: if (Work_home == ox_getenv("HOME") ||
1.1 takayama 51: Work_home == "/" ||
52: Work_home == "" ||
53: Work_home == "." ||
54: Work_home == ".." ) {
55: error("ox_remove_work_dir(): Work_home seems to be wrong.");
56: }
57: }
58: if (shell("test -d "+Work_home) == 0) {
59: shell("rm -rf "+Work_home+" [0-9]*");
60: }
61: return Work_home;
62: }
63:
64: def ox_new_file_name() {
65: extern Misc_ox_file_name;
66: Name = "work"+rtostr(Misc_ox_file_name);
67: Misc_ox_file_name++;
68: return Name;
69: }
70: end$
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>