Giter Site home page Giter Site logo

conscript's Introduction

Conscript

This is a tool for installing and updating Scala software programs. It does less than you think, because the sbt launcher does more than you think. What?

conscript...

  • Queries a github project for launch configurations
  • Writes these to your local filesystem, with a personalized boot path
  • Creates scripts to execute the launch configurations

sbt-launcher...

  • Reads a given launch configuration
  • Fetches needed dependencies on first run
  • Uses the same ivy cache as sbt itself

So conscript just assumes a convention and helps you adhere to it. Firstly, ~/.conscript/boot is used as a boot directory for all. Program launch configurations are stored according to the github project name and script name, such as:

~/.conscript/n8han/conscript/cs/launchconfig

And finally, program scripts are created in ~/bin that reference launch configurations, e.g. ~/bin/cs

Installation

There are two methods of installiation available.

Linux, Mac, Windows

Download the conscript runnable jar. On most OSes you can run it by double-clicking, but if that doesn't work you can also run it from the command line.

java -jar conscript-0.4.1.jar

A "splash screen" will appear during installation. Don't close it until you see a message that cs was installed, or that something went wrong.

Linux, Mac

If you prefer, you can install conscript by piping this shell script.

curl https://raw.github.com/n8han/conscript/master/setup.sh | sh

Java 7

If you're using a buggy preview release of Java, then Conscript will be buggy. Please use a relase version of Java instead. If there is no final release of Java 7 for your (Mac) platform yet, use 6.

Use

The main thing you do with conscript is install/update and update commands based on templates. Templates are stored in github projects, which you pass into the cs commpand. For example, this installs the giter8 templating system:

cs n8han/giter8

Templates specify a version of the app to use, but you can override that by specifying an explicit version with another slash:

cs n8han/giter8/0.2.1

Project owners may also decide to push pre-release or other alternate templates to different branches on github. Use can tell conscript read templates from another branch with the --branch or -b option.

cs n8han/giter8 --branch staging

And lastly, if at some point your conscript boot directory contains stale/suspect artifacts such as snapshot releases, you can clean it:

cs --clean-boot

When you next run any conscript app (such as cs) it will fetch its cleaned dependencies back into the shared boot directory; generally it only has to look as far as the local ivy cache to find them.

Private Repositories

Conscript supports private github repos using github's oauth flow for non-web apps.

To authenticate and store a permanent token, use the --auth parameter:

cs --auth yourname:yourpass

This stores an access token in ~/.conscript/config which is used for all future cs invocations. You can revoke tokens at any time in your github account settings.

The sbt 0.11+ launcher can access private Maven/Ivy repos just as sbt itself can. Specify a credentials properties file, such as ~/.ivy2/.credentials, in the sbt.boot.credentials JVM property or SBT_CREDENTIALS environment variable. The launcher will use these credentials when accessing protected resources in the specified realm.

Mailing List

Join the Conscript mailing list to ask questions and stay up to date on the project.

Conscripting

We hope you'll make your own programs that use conscript. The conscript-plugin makes these easier to build and test.

conscript's People

Contributors

avalade avatar eed3si9n avatar forficate avatar gseitz avatar sett4 avatar softprops avatar weihsiu avatar

Watchers

 avatar  avatar

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.