From e60c50fb0bde854b02a2dfe943f04c2399ad62b7 Mon Sep 17 00:00:00 2001 From: David Newhall II Date: Sat, 13 Jul 2019 03:52:00 -0700 Subject: [PATCH] Update Library and application-builder code. --- .secret_files.tar.enc | Bin 0 -> 8208 bytes .travis.yml | 34 +++++++++++++++++++--------------- .travis/github_deploy_key.enc | Bin 3392 -> 0 bytes Gopkg.lock | 6 +++--- README.md | 2 +- scripts/formula-deploy.sh | 17 +++++++++++++++++ unifipoller/dumper.go | 3 +-- 7 files changed, 41 insertions(+), 21 deletions(-) create mode 100644 .secret_files.tar.enc delete mode 100644 .travis/github_deploy_key.enc diff --git a/.secret_files.tar.enc b/.secret_files.tar.enc new file mode 100644 index 0000000000000000000000000000000000000000..9a799392131768bda535c2de18e14f532dcbb76a GIT binary patch literal 8208 zcmV+rAn)HwvrIRRvnUDQGe$leJ5bPHIUIhwp`i56?oiO zCTvKWuS#zPRmmD|NU>j6N_w1(0_q1PdbC<)?nsLhicA;loabDoCXUe4)0^EfT_trX zz>h%xHLxAW$e#eTY%{NTRlqe`oLqTZQiN0lGI6~E7|7ypjZ?R+8r+zHtKRQR{Z+4= zSQ(!r+J01`@5fM#VVLh;>}s>_Q-F4g-rr@6a&DLLB6KlFW1ehcDcZXF z)8t4$+v|(k7k32{?@7WD@4I1hbn*E%j-@wMkOT)YNb3{)EP`S9dBIs3tQsGdR>}jZ zMUi8)mn0{A+TM??8-GX2gDyMM@#!dhGIYSlD}2P`nNM0pSV#z&7soXP&%*z)TjqKywRkcYNhpf5@kr82;s9q(-VmlJ*kV=m!F5eVyp z7@(KeX2L%2fxUsTp&AbN@122UAEkk7SsZMH^CM~hHl{rw3s!+^VhvoKzojOjBpW7} z=L|@XR)gVtQvToLsjvXScKBmQzHfzWAU+c3$u$h=3(71)ImVGL{_z82d&{3O9!wuV zTjGTx#0N=x<%N&q7y#jf<#Ykj=U}TKQucN#Zk&NR5z@n6snjDS0)10CB~qFhykJS- zqhgEhMY``a;sLMS44iUf=ZEsSxh0=~;O6M87I-zAF?nxAKiKkQPmx9C5`%zVx$RQt z4WTK0Uitlq5J}p%3m3kx1;Y6#I2&I0%!a(0sc_Ne-w(qphQ~BN!g-a|Pnp3HH*;n_ zrnoSSM+j_GmIfh*7p{@9y_A#m0kHwOdk=7P`(-A_p7UOE|?bhwP$M>6)g~^90VyEjpn_BsqE-U(F1hKo(#>MN+NK46vD`(QClq5z6g5~iXcEKST*g#Hf|yUYB|a)bF=(J!6qVcJD0$Ex z{Qm6#agYy~lge@KAlbBN4d9^%HC&q+AbW)CTwB>c z!+81IQr&eYM?&kM#nCyjyoV|@b)Vn%d4C9ndl-oYAv0t(qBs%WlucDJxDDG9sV#5d(`j6a z3Wfdm={sFS_p&sP*;pzF5EV>^EAW7fa_O%N+8m4*KB=;7a(!>^{QXA&#iIi%CT^Fz zmL)QnMz~kJRCwO{h?t7NH2TAtwj+b4%HWK+K8*~9t-aX6?diLI4Dki!nUn2hEzMGV zBC=$YO%+ITeMFZ9Sd-a%tjPSwu6RL~(-I_{1Ta~5`1>qMM7V;D3@I4+#2IS4mz&u( zAjHQ!@!Io-JaM6}QzQkh8c@kj@c6t@lAdo~SMlCZ-Y|nk@+L%YUAX(wrS*tJ;`7+%~c?^bxhb<0m zU!{=p=)2T-h5cZO;+vYV1xW^$0bz!CyrIWQZd^co`xiS0So}nq4pk{tAdWnfKWrhR zeSK2t^M=rJt<{x8(^MSP=i;|2fXMp&kbS3Qe8)Oi3s8c-4W8{a2%M)^a$U1gy-D$H z_*Y0-n+s7!`-3I3!b!1fXaQ)COq|_{*6gs*fw|k&rFOhG)4QWM0Un(iB+L--MH0x@ zEsqo5*iMKjwHu|y=+F8`fC}**KG?;YWBMtM%9w%jr~JZ&6@JL8H8MOcz5BHrV?&Z| zr8s0;@Z}?=E|X|BCun1cEiv4K1Czk`ut^5$rjkO7K@W~z3fFC$dAwKME6W7liE?#u zz}>L5^?$2GbLG@LIsw=D?i+st{4FzuE1NYzc?*53*hjZ{$A8s~aG=p^sDWR3YBl

UyL=j8H$V=T0{u2V<} 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 CjyMAV literal 0 HcmV?d00001 diff --git a/.travis.yml b/.travis.yml index 4382a921..f8ec6b19 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,16 +16,18 @@ go: services: - docker install: -- mkdir -p $GOPATH/bin + - mkdir -p $GOPATH/bin # Download the `dep` binary to bin folder in $GOPATH -- curl -sLo $GOPATH/bin/dep https://github.com/golang/dep/releases/download/v0.5.3/dep-linux-amd64 -- chmod +x $GOPATH/bin/dep + - curl -sLo $GOPATH/bin/dep https://github.com/golang/dep/releases/download/v0.5.3/dep-linux-amd64 + - chmod +x $GOPATH/bin/dep # download super-linter: golangci-lint -- curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin latest -#- curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin latest -- rvm install 2.0.0 -- rvm 2.0.0 do gem install --no-document fpm + - curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin latest + - rvm install 2.0.0 + - rvm 2.0.0 do gem install --no-document fpm before_script: + # Create your own deploy key, tar it, and encrypt the file to make this work. Optionally add a bitly_token file to the archive. + - openssl aes-256-cbc -K $encrypted_9f3147001275_key -iv $encrypted_9f3147001275_iv -in .secret_files.tar.enc -out .secret_files.tar -d + - tar -xf .secret_files.tar - source .metadata.sh - make vendor script: @@ -39,18 +41,20 @@ script: after_success: # Display Release Folder - ls -l release/ + # Setup the ssh client so we can clone and push to the homebrew formula repo. + # You must put github_deploy_file into .secret_files.tar.enc + # This is an ssh key added to your homebrew forumla repo. - | mkdir -p $HOME/.ssh declare -r SSH_FILE="$(mktemp -u $HOME/.ssh/XXXXX)" echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> $HOME/.ssh/config - # Get deploy key for golift/homebrew-mugs. - openssl aes-256-cbc -K $encrypted_9f3147001275_key -iv $encrypted_9f3147001275_iv -in ".travis/github_deploy_key.enc" -out "$SSH_FILE" -d - chmod 600 "$SSH_FILE" \ - && printf "%s\n" \ - "Host github.com" \ - " IdentityFile $SSH_FILE" \ - " StrictHostKeyChecking no" \ - " LogLevel ERROR" >> $HOME/.ssh/config + [ ! -f github_deploy_key ] || (mv github_deploy_key $SSH_FILE \ + && chmod 600 "$SSH_FILE" \ + && printf "%s\n" \ + "Host github.com" \ + " IdentityFile $SSH_FILE" \ + " StrictHostKeyChecking no" \ + " LogLevel ERROR" >> $HOME/.ssh/config) deploy: - provider: releases api_key: diff --git a/.travis/github_deploy_key.enc b/.travis/github_deploy_key.enc deleted file mode 100644 index bf0a7bf7d254c51b3430d3f2fd4e03f07566575f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3392 zcmV-G4Zrd`mh^Z4cj8=i*+%cb!Z}9}jngxfA#$4qhmGKwcqa$;7O%l?pRKlS5k^W3 z;?8}I>%oN?PzvnKhB~9kKRmecW-;Q+C;fgt9B-BGi9iJhKVjwb1sO@z-yuQNn62`63Xt`en~$60IG5n=TtpRefCSDZkEf;eYx`EH7h2hE@Yt$JVLelIKM9nMY zP;2!SxuZN$({{V!Jw+Fs@J_Q{1g9P&R)fH zV$t3WCZ1Zl$1mO)ib`+G0U+vlGtEZ{XM@44F{n1_QcmEZw^3FVd+n81wwh%maGo58Zz~D-JbKu;UfWdznhB}? zZ6>_rX9Rc)T$#Mpg${m_DpsdXgDT*KeyB_>hTWOe$ceDw=2I>t^qxVCoJw)uJ~6j0A0(cB>% zMn<>Kbld|g+|km;;RhN}v}j`E24p!HL|MFmigSF1A@N$L6hLJW=>ViT44;>ETOQO}R}`S;E{wfy{EqT^dg82;YdP>!}(?+pf*$d=idd!a%tu0`CC&u{rhr&+}0G zToPOyEOheYat;O~nBlUMp(vkU0^1#!z?M^5E7W|r)jYl|mny(sL@3I{7|`93xE{AP z72q$%eDPoq9PA9xLu#EZ!SDH*FS?CZ%LO>;x?9r@YL*+w4GV;f2g?7qWftpqc@ovpUZlqES99TXgXVq6zW};# zV4mby=7kR$2*M^Vk@-y4uN`VBiPOqG?B```fNo*WoY5-iE%D{2W{3PY`mGzP7Gqh! z3A_#g68^&D*N2D`i(6$qQcEP$2=bP=-i&~e?gDKo3`T+N>#}VBEG5xGcalRS>nk9d z#77U+pHuG#bnL8Iy%$S)`%4gZv|xa|MA5ER+>Q`dnW~NpBo_=5c^G*9ADoH#XFF3= zYJd@#e}NLix0{IBgq@BMZT5RKytHLkvN#CRt$DR0lxSJK$P0Y0JA=c-=HKuI3aQb@T>~o_KG1WXEKehMb{zV( zzP)LO+^%0fWzl_CoPpcv;R7EwD5Q6h`JCFd7vsH%@8-!HWC zL3^NPPjEQ-vY>g$u*oZQtubsa=XY#y`niNH!ycS%_mjFdeTR5@=|6OXBNU=f*FAU= z#cKBWfmAW6pxPQ2cv(mbKqIh|B)Lez)(V}f*h%HzMB3ikTUl+?kQ#X_c)#C0RQbuoe+f2O%B~lj_3(0}_jL9bP?nU$-un*?sTLIlwFf3| zpsv74{ih4r)B11)%Css;HM^#g`SpH;L*!5QSL{sq-|uaV-MV3=oUgWQb#5cS`~&K4 zxBz1J_>234{{Fy8Q25ir3S3Tdkn&C-hjtep@3eH%i(Eaoy$xu35#N63-899=gvx*1 zFPuZ3I8Ae2y57I9b*(J#6=mV8n12tkYprfUA$voM1tjI$VS^YTCYA5q&Wl%(jU{E& zL8)V(epLuSw8B>0^q1njy-DK>ZMx&iAk^ozD{8Ps= zamuY)t#l83lrutfaR4FW5CsQxdoCv;4L)`(E}|dYyuv~(xcu?3YXfW7673zrmCq_8 z>cll62o(N&=dzG3HA*Bh5}wR&{5MqJ#O$13YPUdi^=>D>v=6=R2B;K}y^St&xK%i0 z{{vQcRV7W-DoS+KHm_723=T@ZwF$F6mQEH7mWLI<3*oaRZ`^kHIQlBGteVe_9aH!B z2TZ#~FM|uSFny&0r-h;rpSuEBVxIr0^J-1{q)SkWu}B%E!rK ${BINARY}.rb.new + if [ "$?" = "0" ] && [ "$LINK" != "null?v=v${VERSION}" ] && [ "$LINK" != "?v=v${VERSION}" ]; then + mv ${BINARY}.rb.new ${BINARY}.rb + fi +fi + cp ${BINARY}.rb homebrew_release_repo/Formula pushd homebrew_release_repo git add Formula/${BINARY}.rb diff --git a/unifipoller/dumper.go b/unifipoller/dumper.go index 18f4b50a..fe983407 100644 --- a/unifipoller/dumper.go +++ b/unifipoller/dumper.go @@ -23,7 +23,6 @@ func (u *UnifiPoller) DumpJSONPayload() (err error) { u.Unifi.ErrorLog = func(m string, v ...interface{}) { fmt.Fprintf(os.Stderr, "[ERROR] "+m, v...) } // Log all errors to stderr. - switch sites, err := u.GetFilteredSites(); { case err != nil: return err @@ -40,7 +39,7 @@ func (u *UnifiPoller) DumpJSONPayload() (err error) { } } -func (u *UnifiPoller) dumpSitesJSON(path, name string, sites []unifi.Site) error { +func (u *UnifiPoller) dumpSitesJSON(path, name string, sites unifi.Sites) error { for _, s := range sites { apiPath := fmt.Sprintf(path, s.Name) _, _ = fmt.Fprintf(os.Stderr, "[INFO] Dumping %s: '%s' JSON for site: %s (%s):\n", name, apiPath, s.Desc, s.Name)