tools/package_gcsfuse/package.go (54 lines of code) (raw):

// Copyright 2015 Google LLC // // 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. package main import ( "fmt" "log" "os/exec" ) func packageFpm( packageType string, binDir string, version string, osys string, arch string, outputDir string) (err error) { // Call fpm. cmd := exec.Command( "fpm", "-s", "dir", "-t", packageType, "-n", "gcsfuse", "-C", binDir, "-v", version, "-d", "fuse", "--vendor", "", "--maintainer", "GCSFuse dev <gcs-fuse-dev@google.com>", "--url", "https://github.com/googlecloudplatform/gcsfuse", "--description", "A user-space file system for interacting with Google Cloud Storage.", ) cmd.Dir = outputDir output, err := cmd.CombinedOutput() if err != nil { err = fmt.Errorf("fpm: %w\nOutput:\n%s", err, output) return } return } // Given a directory containing release binaries, create an appropriate .deb // file. func packageDeb( binDir string, version string, osys string, arch string, outputDir string) (err error) { log.Println("Building a .deb package.") err = packageFpm("deb", binDir, version, osys, arch, outputDir) return } // Given a directory containing release binaries, create an appropriate .rpm // file. func packageRpm( binDir string, version string, osys string, arch string, outputDir string) (err error) { log.Println("Building a .rpm package.") err = packageFpm("rpm", binDir, version, osys, arch, outputDir) return }