All Projects → vknabel → Rock

vknabel / Rock

Licence: mit
With Rock you can easily install CLIs built with Swift Package Manager. Prefer vknabel/Archery and yonaskolb/Mint instead

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Rock

Scenekit Scnline
Draw a tube or thick line in SceneKit
Stars: ✭ 49 (+276.92%)
Mutual labels:  swift-package-manager, swiftpm
Swift Docker
Build & test your swift packages using docker - `swift docker test`
Stars: ✭ 179 (+1276.92%)
Mutual labels:  swift-package-manager, swiftpm
Scenekit Bezier Animations
Create animations over Bezier curves of any number of points
Stars: ✭ 35 (+169.23%)
Mutual labels:  swift-package-manager, swiftpm
Swipycell
Easy to use UITableViewCell implementing swiping to trigger actions.
Stars: ✭ 230 (+1669.23%)
Mutual labels:  swift-package-manager, swiftpm
ConsoleUI
Rasterize SwiftUI views to images from macOS terminal
Stars: ✭ 52 (+300%)
Mutual labels:  swift-package-manager, swiftpm
vintage
[UNMAINTED] command-line tool to check for outdated Swift Package Manager dependencies
Stars: ✭ 33 (+153.85%)
Mutual labels:  swift-package-manager, swiftpm
Dikit
Dependency Injection Framework for Swift, inspired by KOIN.
Stars: ✭ 77 (+492.31%)
Mutual labels:  swift-package-manager, swiftpm
EggSeed
Command Line Tool for Starting Your Swift Packages with Continuous Integration
Stars: ✭ 21 (+61.54%)
Mutual labels:  swift-package-manager, swiftpm
tracelog
TraceLog is a highly configurable, flexible, portable, and simple to use debug logging system for Swift and Objective-C applications running on Linux, macOS, iOS, watchOS, and tvOS.
Stars: ✭ 52 (+300%)
Mutual labels:  swift-package-manager, swiftpm
PackageBuilder
PackageBuilder builds a simple command-line structure by SwiftPM.
Stars: ✭ 27 (+107.69%)
Mutual labels:  swift-package-manager, swiftpm
Realityui
A Swift Package for creating familiar UI Elements and animations in a RealityKit rendered Augmented Reality or Virtual Reality scene.
Stars: ✭ 275 (+2015.38%)
Mutual labels:  swift-package-manager, swiftpm
Elm Platform
Bundle of all core development tools for Elm
Stars: ✭ 775 (+5861.54%)
Mutual labels:  install
Swift Benchmark
A swift library to benchmark code snippets.
Stars: ✭ 659 (+4969.23%)
Mutual labels:  swiftpm
Guitar
A Cross-Platform String and Regular Expression Library written in Swift.
Stars: ✭ 641 (+4830.77%)
Mutual labels:  swift-package-manager
Llvmswift
A Swift wrapper for the LLVM C API (version 9.0.1)
Stars: ✭ 641 (+4830.77%)
Mutual labels:  swiftpm
Compinstall
Delphi utility app to auto-install component packages into IDE
Stars: ✭ 19 (+46.15%)
Mutual labels:  install
Displaylink Debian
DisplayLink driver installer for Debian and Ubuntu based Linux distributions.
Stars: ✭ 768 (+5807.69%)
Mutual labels:  install
Mongokitten
Native MongoDB driver for Swift, written in Swift
Stars: ✭ 605 (+4553.85%)
Mutual labels:  swift-package-manager
Laravel Initializer
A convenient way to initialize your application
Stars: ✭ 597 (+4492.31%)
Mutual labels:  install
Reflection
DEPRECATED
Stars: ✭ 592 (+4453.85%)
Mutual labels:  swiftpm

Rock

With Rock you can easily manage your Project, metadata and Swift CLI dependencies. Additionally you can install Swift CLIs globally. The index of all supported libraries can be found on the RockSpecs repository, but you can declare your own at your Rockfile.

Overview

Dependencies are called Rockets (aka 🚀). If they can be build with the Swift Package Manager, they should already be compatible out of the box. Each 🚀 has a RocketSpec which defines the Git url and how it has to be installed.

Project

You can create a project by simply running:

$ rock init

This will create you an empty Rockfile which declares all your dependencies and metadata.

name: YourProject
dependencies:
  - empty # Just an empty dependency that installs fast
  # Insert your dependencies here
  # - [email protected]
  # - name: owncli
  #   url: https://github.com/your/owncli

Additionally you may create any additional tags. Each value will be interpreted as a Stencil template, that will be executed in a context of all previously declared values. The tags constants, version, license, name and url will have precedence.

After you have set up your metadata and dependencies, you can install those by running:

$ rock install

Now you can work with all your CLIs. If you want to create your own custom scripts, you can add the script tag:

name: YourProject
dependencies: [] # your dependencies
author:
  name: Valentin Knabel
  email: [email protected]
scripts:
  hello: echo Hello {{ author.name }}
  xcodeproj:
    - swift package generate-xcodeproj
    - open {{ name }}.xcodeproj

Thereafter you are able to run all your scripts with ease:

$ rock run hello
Hello Valentin Knabel

Additionally there are convenience commands with default scripts made for the Swift Package Manager:

$ rock build
🏃 swift build
$ rock test
🏃 swift test
$ rock archive
🏃 swift build -c release

Global

Installing dependencies globally is currently only supported for Rockets that can be found in the RockSpecs repository. You may install them by simply running:

# With a fixed version/tag/branch
$ rock install [email protected] [email protected]
# Or using the default (e.g. master)
$ rock install swiftgen

If you want to uninstall specific Rockets, just run:

$ rock uninstall sourcery swiftlint swiftgen

Installation

First add the rock-bin to your $PATH variable to your .bashrc, .bash_profile or .zshrc.

export ROCK_PATH="$HOME/.rock" # default
export PATH="$PATH:./.rock/bin:$ROCK_PATH/bin"

Thereafter start 🎸ing your 🚀s by simply cloning the repository, building the swift module and installing rock itself.

$ git clone https://github.com/vknabel/rock $ROCK_PATH/sources/rock
$ cd $ROCK_PATH/sources/rock
$ swift build
$ mkdir $ROCK_PATH/bin
$ cp $ROCK_PATH/sources/rock/.build/debug/rock $ROCK_PATH/bin

Alternatively you may try out our Swift Installer (you still need to set up your $PATH and ROCK_PATH):

$ curl -sL https://raw.githubusercontent.com/vknabel/Rock/master/Scripts/Install.generated.swift | swift -

Updates

Rock can be updated by simply running installing itself with a version specified.

$ rock install [email protected]

Limitations

  • Rock downloads and compiles all of your dependencies isolated and therefore installations may take a while.
  • Currently there is no version handling. Instead only the master branch will be checked out by default.

Author

Valentin Knabel, @vknabel, [email protected]

License

Rock is available under the MIT license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].