On 02/05/2013 04:09 PM, Otavio Salvador wrote: > On Tue, Feb 5, 2013 at 10:04 PM, Darren Hart <[email protected]> wrote: >> On 02/05/2013 03:51 PM, Otavio Salvador wrote: >>> On Tue, Feb 5, 2013 at 8:52 PM, Darren Hart <[email protected]> wrote: >>>> oe-git-proxy.sh is a simple tool to be used via GIT_PROXY_COMMAND. It >>>> uses BSD netcat to make SOCKS5 or HTTPS proxy connections. It uses >>>> ALL_PROXY to determine the proxy server, protocol, and port. It uses >>>> NO_PROXY to skip using the proxy for a comma delimited list of hosts, >>>> host globs (*.example.com), IPs, or CIDR masks (192.168.1.0/24). It is >>>> known to work with both bash and dash shells. >>>> >>>> V2: Implement recommendations by Enrico Scholz: >>>> o Use exec for the nc calls >>>> o Use "$@" instead of $* to avoid quoting issues inherent with $* >>>> o Use bash explicitly and simplify some of the string manipulations >>>> Also: >>>> o Drop the .sh in the name per Otavio Salvador >>>> o Remove a stray debug statement >>>> >>>> Signed-off-by: Darren Hart <[email protected]> >>>> Cc: Enrico Scholz <[email protected]> >>>> Cc: Otavio Salvador <[email protected]> >>>> --- >>>> scripts/oe-git-proxy | 124 >>>> ++++++++++++++++++++++++++++++++++++++++++++++++++ >>>> 1 files changed, 124 insertions(+), 0 deletions(-) >>>> create mode 100755 scripts/oe-git-proxy >>>> >>>> diff --git a/scripts/oe-git-proxy b/scripts/oe-git-proxy >>>> new file mode 100755 >>>> index 0000000..4f1871a >>>> --- /dev/null >>>> +++ b/scripts/oe-git-proxy >>>> @@ -0,0 +1,124 @@ >>>> +#!/bin/bash >>>> + >>>> +# oe-git-proxy.sh is a simple tool to be via GIT_PROXY_COMMAND. It uses >>>> BSD netcat >>> >>> Please fix the script name. >>> >>>> +# to make SOCKS5 or HTTPS proxy connections. It uses ALL_PROXY to >>>> determine the >>>> +# proxy server, protocol, and port. It uses NO_PROXY to skip using the >>>> proxy for >>>> +# a comma delimited list of hosts, host globs (*.example.com), IPs, or >>>> CIDR masks >>>> +# (192.168.1.0/24). It is known to work with both bash and dash shells. >>>> +# >>>> +# BSD netcat is provided by netcat-openbsd on Ubuntu and nc on Fedora. >>>> +# >>>> +# Example ALL_PROXY values: >>>> +# ALL_PROXY=socks://socks.example.com:1080 >>>> +# ALL_PROXY=https://proxy.example.com:8080 >>>> +# >>>> +# Copyright (c) 2013, Intel Corporation. >>>> +# All rights reserved. >>> >>> And please add a clear license here. >> >> >> Both fixed in the contrib branch. GPL license blurb added. >> >> Have you happened to have tested the script? >> >> Thanks Otavio. > > No; not yet. > > I am wondering if the code wouldn't be easier to read if done in > Python ... the ipv4 stuff is UGLY and hard to follow ... I understand > it is very simple script but maybe Python would be the right tool for > it. What do you think?
I had originally written the IP matching stuff in C, but converted to shell to keep this script self contained and easily deployable. The proper way to do this with python would require the use of external modules, which may or may not be installed on the target system. Although I suppose even just replacing this script and all the math it does in python might be an improvement. However, For the purposes of a one-stop-shop example git proxy script for oe-core, I think bash still serves us best here. Otherwise, yes, I completely agree it's horrible to look at :-) -- Darren Hart Intel Open Source Technology Center Yocto Project - Technical Lead - Linux Kernel _______________________________________________ Openembedded-core mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
