parent
e41edb5e1b
commit
0d01ecc1de
|
@ -5,8 +5,7 @@ running `curl <url> | bash`
|
||||||
|
|
||||||
## Work in Progress
|
## Work in Progress
|
||||||
|
|
||||||
`netrun` is still experimental; don't rely on its working properly. In
|
`netrun` is still experimental; don't rely on its working properly.
|
||||||
particular, HTTP response codes are ignored (see #1).
|
|
||||||
|
|
||||||
## Try it
|
## Try it
|
||||||
|
|
||||||
|
|
25
netrun.py
25
netrun.py
|
@ -65,9 +65,28 @@ url = args.url
|
||||||
pager = shlex.split(args.pager)
|
pager = shlex.split(args.pager)
|
||||||
interpreter = shlex.split(args.interpreter)
|
interpreter = shlex.split(args.interpreter)
|
||||||
|
|
||||||
if not args.quiet:
|
while True:
|
||||||
print(f"Downloading `{url}`...")
|
if not args.quiet:
|
||||||
content = requests.get(url).content
|
print(f"Downloading `{url}`...")
|
||||||
|
|
||||||
|
response = requests.get(url, allow_redirects=False)
|
||||||
|
|
||||||
|
if response.status_code == 200:
|
||||||
|
content = response.content
|
||||||
|
break
|
||||||
|
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
print(f"{response.status_code} {response.reason} (redirect to `{response.headers['location']}`)")
|
||||||
|
if yn("Do you want to follow this redirect?") == 'y':
|
||||||
|
url = response.headers['location']
|
||||||
|
else:
|
||||||
|
print("Not redirecting.")
|
||||||
|
sys.exit(0)
|
||||||
|
except KeyError:
|
||||||
|
print(f"Download failed: {response.status_code} {response.reason}")
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
if not args.quiet:
|
if not args.quiet:
|
||||||
print("Download successful.")
|
print("Download successful.")
|
||||||
print("=" * os.get_terminal_size().columns)
|
print("=" * os.get_terminal_size().columns)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user