commit - e3e8e3f92743744c2c48fab355b6a13c73a5c49c
commit + 4b0d8b80afbcbc8ba600373983a587dd8c172fc9
blob - 6a5172cb2110b51208cc249a3b1dc6c7dd35dcbb
blob + e82d57b9b60f260632b5a15697f8b334f871fedb
--- current
+++ current
#set -x
## Variables
-export RELEASEPATH=/home/gonzalo/rel
+export RELEASEPATH=/usr/rel
export KERNELSPATH=/kernels
export VERSION=64
+export REL=6.4
export MIRROR="http://fastly.cdn.openbsd.org/"
ARCH=$(machine -a)
YO=$(hostname)
KERNEL=$(sysctl | grep -c kern.osversion=GENERIC.MP)
PING=$(ping -c1 -w1 cisco.com | wc -l)
-LOCK="/var/empty/current.lock"
+LOCK="/tmp/current.lock"
-## Check root
-if test "$(whoami)" != root; then
- doas "$0" "$@"
- exit $?
-fi
-
## Check running
if [ -e "${LOCK}" ]; then
- printf "Already a current.sh running, look at .lock on /var/empty/\\n"
+ printf "Already a ${0##*/} running, look at .lock on /tmp\\n"
exit 2
fi
touch ${LOCK}
-printf "[+] Current - OpenBSD\\n"
+printf "[+] ${0##*/} - OpenBSD\\n"
## Check internet link
if [ ! "${PING}" -lt "1" ]; then
exit 2
fi
+check_root()
+{
+ if test "$(whoami)" != root; then
+ doas "$0" "$@"
+ exit $?
+ fi
+}
+
## Checks misc
check_path()
{
{
cd ${RELEASEPATH} || return
+ rm -rf "${RELEASEPATH}"/*
+
while [[ ! -f "${RELEASEPATH}"/SHA256 ]]; do
printf "[+] Downloading SHA256 from ${MIRROR}\n\n"
ftp -V ${MIRROR}pub/OpenBSD/snapshots/${ARCH}/SHA256
else
printf "[+] No updates on mirror ${MIRROR}\\n"
rm "${LOCK}"
+ exit 1
fi
}
rm ${LOCK}
exit 2
else
- printf "\\n[+] Files OK, continue...\\n"
+ printf "\\n[+] Files OK based on SHA256.\\n"
fi
- rm -rf "${TMPFILE}"
+ rm "${TMPFILE}"
}
download_sets()
cd ${RELEASEPATH} || return
printf "[+] Downloading from ${MIRROR}pub/OpenBSD/snapshots/${ARCH}/\n\n"
-
+
for set in "${kernels[@]}"; do
ftp -V ${MIRROR}pub/OpenBSD/snapshots/${ARCH}/"${set}"
done
done
}
+download_rel()
+{
+ set -A kernels 'bsd' 'bsd.rd' 'bsd.mp'
+ set -A sets 'comp' 'game' 'man' 'base'
+ set -A xsets 'xbase' 'xserv' 'xshare' 'xfont'
+
+ cd ${RELEASEPATH} || return
+
+ printf "[+] Downloading Release ${REL} from ${MIRROR}pub/OpenBSD/${REL}/${ARCH}/\n\n"
+
+ cd ${RELEASEPATH} &&
+ ftp -V ${MIRROR}pub/OpenBSD/${REL}/${ARCH}/SHA256 && \
+ for set in "${kernels[@]}"; do
+ ftp -V ${MIRROR}pub/OpenBSD/${REL}/${ARCH}/"${set}"
+ done
+
+ for set in "${sets[@]}"; do
+ ftp -V ${MIRROR}pub/OpenBSD/${REL}/${ARCH}/"${set}"${VERSION}.tgz
+ done
+
+ for set in "${xsets[@]}"; do
+ ftp -V ${MIRROR}pub/OpenBSD/${REL}/${ARCH}/"${set}"${VERSION}.tgz
+ done
+
+ check_sum
+
+ rm "${LOCK}"
+
+ exit 1
+}
+
+
cp_files()
{
cd ${RELEASEPATH} || return
recordatorio()
{
printf "[+] All done!\\n"
- rm -rf "${LOCK}"
+ rm "${LOCK}"
exit
}
+checks()
+{
+ check_root
+ check_path
+ check_kernels_path
+ check_powerpc
+ check_rpi3
+ check_alix
+}
+
instalation()
{
download_sets
check_sum
check_mp
check_kernel
- cp_files
+ cp_files
firsttime
recordatorio
}
-check_path
-check_kernels_path
-check_powerpc
-check_rpi3
-check_alix
-force_new
-check_new
+usage()
+{
+ echo
+ echo "[+] Usage: ${0##*/} [-i][-F][-r][-f]" >&2
+ echo
+ echo "[+] Options:"
+ echo " -i download and install last snapshot if is new"
+ echo " -F force download and install last snapshot"
+ echo " -r download the last release"
+ echo " -f install first time file (by default on -i and -F)"
+ echo
+ rm "${LOCK}"
+ exit 1
+}
+
+while getopts 'iFrf' arg; do
+ case ${arg} in
+ i) checks ; check_new ;;
+ F) checks ; force_new ;;
+ r) checks ; download_rel ;;
+ f) check_root ; firsttime ;;
+ *) usage ;;
+ esac
+done
+
+usage