FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cpython/Tools/scripts/which.py at v3.6.15 · python/cpython · GitHub
python
cpython
Repository navigation
Code
Issues
5k+
(5k+)
Pull requests
2.6k
(2.6k)
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cpython
/
Tools
/
scripts
/
which.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
executable file
·
60 lines (50 loc) · 1.59 KB
Breadcrumbs
cpython
/
Tools
/
scripts
/
which.py
Copy path
File metadata and controls
executable file
·
60 lines (50 loc) · 1.59 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
#! /usr/bin/env python3
# Variant of "which".
# On stderr, near and total misses are reported.
# '-l<flags>' argument adds ls -l<flags> of each file found.
import
sys
if
sys
.
path
[
0
]
in
(
"."
,
""
):
del
sys
.
path
[
0
]
import
sys
,
os
from
stat
import
*
def
msg
(
str
):
sys
.
stderr
.
write
(
str
+
'
\n
'
)
def
main
():
pathlist
=
os
.
environ
[
'PATH'
].
split
(
os
.
pathsep
)
sts
=
0
longlist
=
''
if
sys
.
argv
[
1
:]
and
sys
.
argv
[
1
][:
2
]
==
'-l'
:
longlist
=
sys
.
argv
[
1
]
del
sys
.
argv
[
1
]
for
prog
in
sys
.
argv
[
1
:]:
ident
=
()
for
dir
in
pathlist
:
filename
=
os
.
path
.
join
(
dir
,
prog
)
try
:
st
=
os
.
stat
(
filename
)
except
OSError
:
continue
if
not
S_ISREG
(
st
[
ST_MODE
]):
msg
(
filename
+
': not a disk file'
)
else
:
mode
=
S_IMODE
(
st
[
ST_MODE
])
if
mode
&
0o111
:
if
not
ident
:
print
(
filename
)
ident
=
st
[:
3
]
else
:
if
st
[:
3
]
==
ident
:
s
=
'same as: '
else
:
s
=
'also: '
msg
(
s
+
filename
)
else
:
msg
(
filename
+
': not executable'
)
if
longlist
:
sts
=
os
.
system
(
'ls '
+
longlist
+
' '
+
filename
)
if
sts
:
msg
(
'"ls -l" exit status: '
+
repr
(
sts
))
if
not
ident
:
msg
(
prog
+
': not found'
)
sts
=
1
sys
.
exit
(
sts
)
if
__name__
==
'__main__'
:
main
()
Back
|
FazBrowse Home
|
New Git URL