1*03ce13f7SAndroid Build Coastguard Worker// Copyright 2019 The SwiftShader Authors. All Rights Reserved. 2*03ce13f7SAndroid Build Coastguard Worker// 3*03ce13f7SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*03ce13f7SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*03ce13f7SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*03ce13f7SAndroid Build Coastguard Worker// 7*03ce13f7SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*03ce13f7SAndroid Build Coastguard Worker// 9*03ce13f7SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*03ce13f7SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*03ce13f7SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*03ce13f7SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*03ce13f7SAndroid Build Coastguard Worker// limitations under the License. 14*03ce13f7SAndroid Build Coastguard Worker 15*03ce13f7SAndroid Build Coastguard Worker// Package util provides small utility functions. 16*03ce13f7SAndroid Build Coastguard Workerpackage util 17*03ce13f7SAndroid Build Coastguard Worker 18*03ce13f7SAndroid Build Coastguard Workerimport ( 19*03ce13f7SAndroid Build Coastguard Worker "os" 20*03ce13f7SAndroid Build Coastguard Worker) 21*03ce13f7SAndroid Build Coastguard Worker 22*03ce13f7SAndroid Build Coastguard Worker// IsFile returns true if path is a file. 23*03ce13f7SAndroid Build Coastguard Workerfunc IsFile(path string) bool { 24*03ce13f7SAndroid Build Coastguard Worker s, err := os.Stat(path) 25*03ce13f7SAndroid Build Coastguard Worker if err != nil { 26*03ce13f7SAndroid Build Coastguard Worker return false 27*03ce13f7SAndroid Build Coastguard Worker } 28*03ce13f7SAndroid Build Coastguard Worker return !s.IsDir() 29*03ce13f7SAndroid Build Coastguard Worker} 30*03ce13f7SAndroid Build Coastguard Worker 31*03ce13f7SAndroid Build Coastguard Worker// IsDir returns true if path is a directory. 32*03ce13f7SAndroid Build Coastguard Workerfunc IsDir(path string) bool { 33*03ce13f7SAndroid Build Coastguard Worker s, err := os.Stat(path) 34*03ce13f7SAndroid Build Coastguard Worker if err != nil { 35*03ce13f7SAndroid Build Coastguard Worker return false 36*03ce13f7SAndroid Build Coastguard Worker } 37*03ce13f7SAndroid Build Coastguard Worker return s.IsDir() 38*03ce13f7SAndroid Build Coastguard Worker} 39*03ce13f7SAndroid Build Coastguard Worker 40*03ce13f7SAndroid Build Coastguard Worker// Percent returns the percentage completion of i items out of n. 41*03ce13f7SAndroid Build Coastguard Workerfunc Percent(i, n int) int { 42*03ce13f7SAndroid Build Coastguard Worker return int(Percent64(int64(i), int64(n))) 43*03ce13f7SAndroid Build Coastguard Worker} 44*03ce13f7SAndroid Build Coastguard Worker 45*03ce13f7SAndroid Build Coastguard Worker// Percent64 returns the percentage completion of i items out of n. 46*03ce13f7SAndroid Build Coastguard Workerfunc Percent64(i, n int64) int64 { 47*03ce13f7SAndroid Build Coastguard Worker if n == 0 { 48*03ce13f7SAndroid Build Coastguard Worker return 0 49*03ce13f7SAndroid Build Coastguard Worker } 50*03ce13f7SAndroid Build Coastguard Worker return (100 * i) / n 51*03ce13f7SAndroid Build Coastguard Worker} 52