All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cloudbees.sdk.utils.Helper Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2010-2013, CloudBees Inc.
 *
 * 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 com.cloudbees.sdk.utils;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.Properties;

/**
 * @author Fabian Donze
 */
public class Helper {
    public static String promptForAppId() throws IOException {
        return promptFor("Enter application ID (ex: account/appname) : ", true);
    }

    public static String promptFor(String message, boolean cannotBeNull) throws IOException {
        String input = promptFor(message);
        if (cannotBeNull && (input == null || input.trim().length() == 0))
            return promptFor(message, cannotBeNull);
        return input;
    }

    public static boolean promptMatches(String message, String successPattern) throws IOException {
        String input = promptFor(message);
        if (input == null || input.trim().length() == 0)
            return promptMatches(message, successPattern);
        return input.matches(successPattern);
    }

    public static String promptFor(String message) throws IOException {
        BufferedReader inputReader = new BufferedReader(new InputStreamReader(System.in));
        System.out.print(message);
        return inputReader.readLine();
    }

    public static boolean loadProperties(File propertyFile, Properties properties) {
        if (propertyFile.exists()) {
            FileInputStream fis = null;
            try {
                fis = new FileInputStream(propertyFile);
                properties.load(fis);
                fis.close();
                return true;
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (fis != null) {
                    try {
                        fis.close();
                    } catch (IOException ignored) {
                    }
                }
            }
        }
        return false;
    }

    public static void deleteDirectory(File dir) {
        if (dir.exists()) {
            if (dir.isDirectory()) {
                File[] files = dir.listFiles();
                if (files != null) {
                    for (File f : files) {
                        if (f.isDirectory())
                            deleteDirectory(f);
                        else
                            f.delete();
                    }
                }
            }
            dir.delete();
        }
    }

    public static void deleteDirectoryOnExit(File dir) {
        if (dir.exists()) {
            dir.deleteOnExit();
            if (dir.isDirectory()) {
                File[] files = dir.listFiles();
                if (files != null) {
                    for (File f : files) {
                        if (f.isDirectory())
                            deleteDirectoryOnExit(f);
                        else
                            f.deleteOnExit();
                    }
                }
            }
        }
    }

    public static void copyFile(File from, File to) throws IOException {
        byte[] buf = new byte[1024];
        FileInputStream in = new FileInputStream(from);
        try {
            FileOutputStream out = new FileOutputStream(to);
            try {
                int numRead = in.read(buf);
                while (numRead != -1) {
                    out.write(buf, 0, numRead);
                    numRead = in.read(buf);
                }
            } finally {
                out.close();
            }
        } finally {
            in.close();
        }
    }

    public static void downloadFile(String url, String fileName) throws IOException {
        byte[] buf = new byte[1024];
        FileOutputStream fos = new FileOutputStream(fileName);
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        InputStream in = new URL(url).openStream();
        try {
            int numRead = in.read(buf);
            while (numRead != -1) {
                bos.write(buf, 0, numRead);
                numRead = in.read(buf);
            }
        } finally {
            bos.close();
        }
    }

    public static String[] getFiles(File dir, final String extension) {
        return dir.list(new FilenameFilter() {
            public boolean accept(File dir, String name) {
                return (name.endsWith(extension));
            }
        });
    }


    public static String getPaddedString(String str, int length) {
        StringBuffer sb;
        if (str != null) sb = new StringBuffer(str);
        else sb = new StringBuffer();
        int size = sb.length();
        if (size < length) {
            for (int i=0; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy