Skip to content
This repository was archived by the owner on Aug 27, 2025. It is now read-only.

gyk4j/migrant

Repository files navigation

Go

migrant

A minimalist Vagrant replacement for Oracle VirtualBox.

Note

27 Aug 2025: It has just come to my attention that Vagrant has been ported to Go according to Hashicorp's roadmap. Users are advised to use Vagrant 2.4 and newer for the Go implementation.

Thus, there is no point in developing a Golang alternative implementation.

This project will be archived with immediate effect and no further active development is expected.

All experimental codes would be left in their present state for future reference only.


For historical reference only

Note

migrant is in the process of redesign and redevelopment with a new programming language. The old files used for prototyping certain features and functionalities have been moved to the archived directory for archival and safekeeping purpose.

While the original aim of implementing migrant was to keep it simple by reusing whatever the system environment already offers, it has become increasingly clear that relying on the system's native scripting languages and tools would fail to achieve the requirements to be simple, portable across operating systems (i.e. Windows and Linux), and be largely self- contained.

After prototyping, the following problems have been identified:

  • Different operating systems have missing tools that require extra third party ones to be installed, especially for handling tar.gz compressed data and parsing JSON data.
  • The batch file scripting language is limited; it requires hacks for basic string parsing and manipulation, and splitting codes into blocks and functions.

All these add to the complexity of deployment and usage on end-user systems. Thus, another programming language for a new implementation is required.

Installation

Important

The following information is outdated.

There are implementations for Bash Shell, Batch and PowerShell, which require external binary tools/dependencies.

Operating System Language curl jq tar
Linux Bash * Install *
Windows Batch/CMD Download Download Download
Windows PowerShell Download

* Usually pre-installed. No further action is needed.