Remove wget dependency

apt-cyg has had a long standing circular dependency with wget. This is because
Base Cygwin does not include wget or curl. I have mentioned before workarounds
to this

41e1d91172

However none were ideal. I have since discovered lynx, which can be used in a
pinch to download files

http://unix.stackexchange.com/a/83987

lynx has these features

- pure command line, unlike setup-x86_64
- works with "https://" URLs, unlike /dev/tcp
- comes with Base Cygwin, unlike wget/curl

If wget is not installed, lynx will be used as a fallback with a warning
printed.
This commit is contained in:
Steven Penny 2014-12-20 02:42:40 -06:00
parent aa4a288c33
commit 61ae91a00a
1 changed files with 21 additions and 13 deletions

34
apt-cyg
View File

@ -23,15 +23,19 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
# this script requires some packages
if ! type awk bzip2 tar wget xz &>/dev/null
then
echo You must install wget, tar, gawk, xz and bzip2 to use apt-cyg.
exit 1
fi
ARCH=${HOSTTYPE/i6/x}
function wget {
if command wget -h &>/dev/null
then
command wget "$@"
else
warn wget is not installed, using lynx as fallback
set "${*: -1}"
lynx -source "$1" > "${1##*/}"
fi
}
function usage {
hr '
usage: apt-cyg [command] [options] [packages]
@ -129,10 +133,14 @@ function check-packages {
fi
}
function warn {
function info {
printf '\e[36m%s\e[m\n' "$*" >&2
}
function warn {
printf '\e[1;31m%s\e[m\n' "$*" >&2
}
function apt-update {
if find-workspace
then
@ -162,14 +170,14 @@ function apt-list {
for pkg in "${pks[@]}"
do
(( sbq++ )) && echo
warn Searching for installed packages matching "$pkg":
info Searching for installed packages matching "$pkg":
awk 'NR>1 && $1~ENVIRON["pkg"] && $0=$1' /etc/setup/installed.db
echo
warn Searching for installable packages matching "$pkg":
info Searching for installable packages matching "$pkg":
awk '$1 ~ ENVIRON["pkg"] && $0 = $1' RS='\n\n@ ' FS='\n' setup.ini
done
(( sbq )) && return
warn The following packages are installed:
info The following packages are installed:
awk 'NR>1 && $0=$1' /etc/setup/installed.db
}
@ -428,7 +436,7 @@ function apt-install {
fi
if (( wr ))
then
echo 'Warning: some required packages did not install, continuing'
info some required packages did not install, continuing
fi
# run all postinstall scripts
@ -564,7 +572,7 @@ do
fi
shift
else
warn No file name provided, ignoring $1
info No file name provided, ignoring $1
fi
shift
;;