Skip to content

bingryan/call

Repository files navigation

Table of Contents

Call: Make remote development more elegant

License

Build Status


What does it do

Call is an easy-to-use command tools for remote development. It helps you to build remote development easily and elegant. It can work with makefile and justfile.

Call provides three ways.

  • openssh SSH Login Without Password

  • password SSH Login With Password

  • keypair SSH Login With Private Key File

How it works(now)

Functions currently implemented:

  • step1: synchronize data to the specified server

  • step2: execute commands on the remote server

Architecture

Quick Start

It is super easy to get started with your first project.

Step 1: install call command tools

cargo install --git  https://github.com/bingryan/call.git

or

cargo install rust-call

Step 2: init call

cd your_project_homepage
call i

there will be a call.yml file at your_project_homepage. Then you can configure call.yml。such as:

call:
  config:
    active:
      openssh:
        - dev  # active server label
    runner: make  # make -> makefile , just -> justfile
  mapping:
    src: . # current dir
    dest: ~/workspace/call  # remote path
    exclude: # Ignored directories in .gitignore will also be ignored
      - ./target
      - README.md
  server:
    openssh:
      dev: # label for openssh server
        host:
          - 192.168.2.49 # multiple
        port: 22
        authentication_type: openssh
        username: rust # remote server username

Step 3: run call

replace make xxx with call xxx command, when your project has makefile.

replace just xxx with call xxx command, when your project has justfile.

Requirements

  • openssh (rsync)
  • password (rsync,sshpass)
  • keypair (rsync)
# Debian/Ubuntu
$ sudo apt-get install rsync
$ sudo apt-get install sshpass

# Red Hat
$ sudo yum install rsync
$ sudo yum install sshpass

# Arch Linux
$ sudo pacman -S rsync
$ sudo pacman -S sshpass

# MacOS
$ brew install rsync
$ brew install http://git.io/sshpass.rb(if notwork, copy raw content to `sshpass.rb`: brew install sshpass.rb)

TODO

  • Call Server(Relay Server): relay server which is able to coordinate with clients to establish connectivity(use other port forward tools).
  • default template(Put the template.yml under ~/.call/template.yml and copy it directly when run: call i)

Tutorial

Tutorial Doc

Contributing

Contributors are welcomed to join this project. Please check CONTRIBUTING about how to contribute to this project.

About

Make remote development more elegant

Topics

Resources

License

Contributing

Stars

Watchers

Forks