diff options
author | Ryan Cragun | 2020-05-06 12:33:20 -0600 |
---|---|---|
committer | Ryan Cragun | 2020-05-06 12:33:20 -0600 |
commit | 760dd1b06fb450dff31fbfda88ff8d0f5ec1a9a1 (patch) | |
tree | b93c4bbb1d70201fa57e01a084b84c28873e31f7 /update.go | |
parent | 34d1b10545978f833c7ea5b7ad6ce192de96801c (diff) | |
download | aur-760dd1b06fb450dff31fbfda88ff8d0f5ec1a9a1.tar.gz |
Update to hab 1.6.0-1
Signed-off-by: Ryan Cragun <ryan@chef.io>
Diffstat (limited to 'update.go')
-rw-r--r-- | update.go | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/update.go b/update.go new file mode 100644 index 000000000000..55803b207f81 --- /dev/null +++ b/update.go @@ -0,0 +1,122 @@ +/* +Copyright Ryan Cragun + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +// go run update.go to update the PKGBUILD and .SRCINFO with the latest hab +// +package main + +import ( + "encoding/json" + "fmt" + "io/ioutil" + "net/http" + "os" + "os/exec" + "text/template" +) + +const ( + manifestURL = "http://packages.chef.io/files/stable/habitat/latest/manifest.json" + pkgbuildTmp = `# Maintainer: Ryan Cragun <me@ryan.ec> +# http://packages.chef.io/files/stable/habitat/latest/manifest.json +pkgname=habitat +pkgver={{.Version}} +pkgrel=1 +pkgdesc="Application automation framework that allows you to build applications that have automation built-in" +arch=('x86_64') +url="https://www.habitat.sh/" +license=('Apache') +depends=('libarchive' 'libsodium' 'openssl') +makedepends=('git' 'cargo' 'zeromq') +provides=('habitat') +conflicts=('habitat-bin' 'habitat-git') +source=("${pkgname}::git+https://github.com/habitat-sh/habitat.git#tag=${pkgver}") +sha256sums=('SKIP') + +build() { + # Use a temporary local Cargo repository. + export CARGO_HOME="${srcdir}/cargo-repository" + + cd "${srcdir}/${pkgname}" + make +} + +package() { + install -D -m755 "${srcdir}/${pkgname}/target/debug/hab" "${pkgdir}/usr/bin/hab" +} +` +) + +// habManifest is a partial representation of the hab package manifest containing +// only the bits we care about. +type habManifest struct { + Version string `json:"version"` +} + +func main() { + res, err := http.Get(manifestURL) + if err != nil { + fmt.Printf("%v", err) + os.Exit(1) + } + defer res.Body.Close() + + body, err := ioutil.ReadAll(res.Body) + if err != nil { + fmt.Printf("%v", err) + os.Exit(1) + } + + manifest := &habManifest{} + err = json.Unmarshal(body, manifest) + if err != nil { + fmt.Printf("%v", err) + os.Exit(1) + } + + f, err := os.Create("PKGBUILD") + if err != nil { + fmt.Printf("%v", err) + os.Exit(1) + } + + temp, err := template.New("PKGBUILD").Parse(pkgbuildTmp) + if err != nil { + fmt.Printf("%v", err) + os.Exit(1) + } + + err = temp.Execute(f, manifest) + if err != nil { + fmt.Printf("%v", err) + os.Exit(1) + } + + out, err := exec.Command("makepkg", "--printsrcinfo").Output() + if err != nil { + fmt.Printf("%v", err) + os.Exit(1) + } + + err = ioutil.WriteFile(".SRCINFO", out, 0666) + if err != nil { + fmt.Printf("%v", err) + os.Exit(1) + } + + os.Exit(0) +} |