Giter Club home page Giter Club logo

rcopy's Introduction

Build Status

About

A Java library for copying the contents of remote git repository to a specified directory on the local filesystem. Files and directories within the repository can excluded from copying by providing compiled regular expressions patterns.

Usage

This is a Maven project that has to be built locally. I plan to publish it to Github's package repository in the near future. Use mvn clean install to run all tests and install a JAR of the library in your local Maven repository. Then add RCopy as a dependency in your project's POM.

    <dependency>
        <groupId>co.adeshina</groupId>
        <artifactId>rcopy</artifactId>
        <version>{version}</version>
    </dependency>

To copy the contents of repository: Create a CopyConfig, use it to instantiate a RepositoryCopyExecutor and execute it.

public class Copy {
    public void start() throws RepositoryCopyException {
        
        // Directory into which to copy the repos contents.
        Path targetDir = Files.createDirectory("rcopy_dump");
                
        CopyConfig copyConfig = new CopyConfig.Builder(username, repository, targetDir, GitHostingService.GITHUB)
                                              .excludePatterns(Collections.emptyList()) // No file/directories excluded
                                              .httpUserAgent("user-agent") // HTTP User-Agent string
                                              .build();
            
        // Create executor
        RepositoryCopyExecutor executor = RepositoryCopyExecutor.get(copyConfig);
            
        // Blocks until all eligible files are copied or an exception is thrown
        RepositoryCopyLog log = executor.execute();
    }        
}   

Motivation

This is the first step towards implementing a side project idea that's been in my head: A simple HTTP server that serves files copied from a remote git repository. I may never get to build that server but writing this library has been educative and fun.

Tech

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.