-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplib.sl
99 lines (80 loc) · 1.22 KB
/
plib.sl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
## utils
sub scriptpath {
return $__SCRIPT__;
}
sub scriptname {
return getFileName( $__SCRIPT__ ) ;
}
sub argn {
return size(@ARGV);
}
sub args {
return @ARGV;
}
sub argv {
return @ARGV[$1];
}
sub echo {
$s = $1;
println( $s);
}
## regex
sub grep{
$text = $1;
$regx = $2;
if( $text ismatch $regx ) {
return 1;
} else{
return 0 ;
}
}
sub sed{
$text = $1;
$regx = $2;
$tor = $3;
$ntext = replace( $text, $regx, $tor );
return("$ntext");
}
## shutil stuff
sub cat {
$p = $1;
$handle = openf($p);
@data = readAll($handle);
closef($handle);
return @data;
}
sub run {
$cmd = $1;
$process = exec($cmd);
@data = readAll($process);
closef($process);
return @data;
}
sub list{
return @_;
}
sub hash{
return @_;
}
sub nth {
($i, @arr) = @_;
return @arr[$i];
}
sub my {
$var = $1;
local('$var');
return $var;
}
sub arg {
($i, @arr) = @_;
return @arr[$i+1];
}
sub clos{
$closure = compile_closure('return $1 ;' );
$cr = [$closure: $1];
return compile_closure($cr);
}
sub clox {
($cref, @args) = @_;
[$cr: @args]
}