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.