1284567Sgjb#
2284567Sgjb# $FreeBSD$
3284567Sgjb#
4284567Sgjb#
5284567Sgjb# Makefile for uploading Microsoft Azure disk images.
6284567Sgjb#
7284567Sgjb
8284567SgjbAZURE_IMG?=		${.OBJDIR}/azure.vhdf
9284567SgjbAZURE_UPLOAD_TGTS=	azure-check-depends \
10284567Sgjb			azure-do-upload
11284567SgjbCLEANFILES+=		${AZURE_UPLOAD_TGTS}
12284567Sgjb
13284567Sgjb.if defined(AZURE_UPLOAD_CONF) && !empty(AZURE_UPLOAD_CONF)
14284567Sgjb. for VAR in _STORAGE _ACCOUNT _KEY
15284567SgjbAZURE${VAR}!=	grep -E ^AZURE${VAR} ${AZURE_UPLOAD_CONF} | awk -F'	' '{print $$2}'
16284567Sgjb. endfor
17284567Sgjb.endif
18284567Sgjb
19284811Sgjb.if ${BRANCH} == "STABLE" || ${BRANCH} == "CURRENT" || ${BRANCH} == "PRERELEASE"
20285005SgjbSNAPSHOT_DATE!=		date +-%Y-%m-%d
21284567Sgjb.endif
22284567Sgjb
23284567SgjbAZURE_TARGET:=		${OSRELEASE}${SNAPSHOT_DATE}.vhd
24284567Sgjb
25284567Sgjbazure-upload:		${AZURE_UPLOAD_TGTS}
26284567Sgjb
27284567Sgjbazure-check-depends:
28284567Sgjb.for VAR in _STORAGE _ACCOUNT _KEY
29284567Sgjb. if !defined(AZURE${VAR}) || empty(AZURE${VAR})
30284567Sgjb	@echo "Variable AZURE${VAR} cannot be empty."
31284567Sgjb	@false
32284567Sgjb. endif
33284567Sgjb.endfor
34284567Sgjb.if !exists(/usr/local/bin/azure)
35284567Sgjb. if !exists(/usr/local/bin/npm)
36284567Sgjb.  if !exists(${PORTSDIR}/www/npm/Makefile)
37284567Sgjb.   if !exists(/usr/local/sbin/pkg-static)
38284567Sgjb	env ASSUME_ALWAYS_YES=yes pkg bootstrap -yf
39284567Sgjb.   endif
40284567Sgjb	env ASSUME_ALWAYS_YES=yes pkg install -y www/npm
41284567Sgjb.  else
42284567Sgjb	make -C ${PORTSDIR}/www/npm BATCH=1 all install clean
43284567Sgjb.  endif
44284567Sgjb. endif
45284567Sgjb	npm install -g azure-cli
46284567Sgjb.endif
47284567Sgjb
48284567Sgjbazure-do-upload:
49284567Sgjb	/usr/local/bin/azure storage blob upload \
50284567Sgjb		${AZURE_IMG} ${AZURE_STORAGE} ${AZURE_TARGET} \
51284567Sgjb		-t page -a ${AZURE_ACCOUNT} -k "${AZURE_KEY}"
52284567Sgjb	touch ${.OBJDIR}/${.TARGET}
53284567Sgjb
54