Git Product home page Git Product logo

golang-portable-windows's Introduction

golang-portable-windows

Go Programming Language - Portable Environment for Windows

This project allows you to set up a full Go environment in 30 seconds so you can start building Go applications. There is no installation necessary, just extract to your desktop or a portable drive. You can build Go applications using the included portable LiteIDE, the easy-to-use batch scripts, or from plain command prompt. The Go binaries are included so you don't have to build the Go language itself.

The releases are now generated using this tool goappmation.

Download

The latest 32-bit and 64-bit stable release is here (2018-2-20). Previous releases were split into separate 32-bit and 64-bit downloads. It's easier to maintain a single version which allows you to compile either 32-bit or 64-bit by updating the BUILDBIT.txt file. Simply change the text to either 32 or 64 (default) and both LiteIDE and the batch scripts will build for that architecture. For LiteIDE, you also have to delete \liteide_config\locked.txt and then restart it.

The repository does not contain most of the binaries. Be sure to download the latest release which includes the binaries for Go, LiteIDE, Git, Mercurial, and Diff.

Overview

If you sat down at your friends computer, to get Go up and running:

  • Download the latest zip release
  • Extract to a folder
  • Double click LiteIDE.cmd

It's that simple.

Applications

Included is all the original files from go1.10.windows-xxx.zip, LiteIDE X33.2, msysGit, EasyMercurial, and DiffUtils. No changes have been made to any of the files, just extracted to separate folders. The only exception is msysGit which has these additional files from the full portable install: basename.txt, tr.exe, git-pull, git-sh-i18n, git-merge, and git-parse-remote.

Using LiteIDE

Just double click LiteIDE.cmd to start up a portable version of LiteIDE. The GOPATH will automatically be set using a local configuration file. If you move your project to another computer, run LiteIDE.cmd on the new computer to change all the paths inside liteide.ini to the new path. If you want to start from a fresh LiteIDE configuration, just delete \liteide_config\locked.txt and run LiteIDE.cmd.

Using Batch Scripts

If you don't want to use LiteIDE to build your Go applications, you can use the batch scripts in \workspace. All the scripts call __Global.cmd first to set the environment variables and paths. All the scripts are designed to work with the current file structure so no absolute paths are hard coded which makes the scripts very flexible. The "go run" command is not used in any of the scripts because it runs from a temporary location that requires you to add a firewall exception each time it is run - instead "go build" is used to build the app and then run normally. The only differences between the 32-bit and 64-bit releases are _BuildRaceDetector.cmd is removed in 32-bit and _Test.cmd, _TestBenchmark.cmd, and _TestCoverage.cmd do not have the -race flag in 32-bit. Go 32-bit does not support race detection.

__Command Prompt.cmd		- Opens a command prompt
__Global.cmd			- Called by all the scripts to set the environment variables and paths
_Build.cmd			- Builds all apps with a main() function in respective directories, sets Version and BuildDate inside app
_BuildRaceDetector.cmd		- Same as _Build.cmd, but includes -race flag which detects race conditions (size of .exe is greatly increased, not for Production)
_BuildRun.cmd			- Same as _Build.cmd, but runs the app as well
_Clean.cmd			- Removes object files from package source directories and corresponding binary
_Document.cmd			- Runs web server and opens a browser to a local version of the documentation for the application
_Embed.cmd			- Creates a syso file with version information (versioninfo.json) and an icon (icon.ico)
_Fix.cmd			- Finds lines of code that use old APIs and makes corrections
_FixDiff.cmd			- Finds lines of code that use old APIs and shows diffs to use newer APIs
_Format.cmd			- Formats lines of code correctly
_Generate.cmd			- Runs commands described by directives within existing files
_Get.cmd			- Downloads the packages named by the import paths
_GetInstall.cmd			- Downloads and installs the packages named by the import paths
_GetUpdate.cmd			- Downloads and force updates the packages named by the import paths
_Install.cmd			- Installs the packages in the /bin directory (will create automatically)
_Lint.cmd			- Installs Lint and then prints out style mistakes
_List.cmd			- Outputs all the packages
_Test.cmd			- Runs all package tests and outputs code coverage as well as any race conditions
_TestBenchmark.cmd		- Runs all package tests and outputs all benchmarks
_TestCoverage.cmd		- Same as _Test.cmd, but then opens a web browser to a local version of the code coverage map
_Vet.cmd			- Examines code and reports suspicious constructs

Text Files

The batch scripts use the .txt files (Packages.txt and GetPackages.txt) to determine which packages are built and tested. There are two rules when using the .txt files:

  • Only one package per line
  • Any lines that start with # are ignored

How to Use _Get.cmd

To download packages, write each package on a separate line in \workspace\GetPackages.txt and then run _Get.cmd.

Boilerplate Version and Build Date

One feature I find really useful is the ability to set uninitialized variables at build time using ldflags for build version and date.

The BuildDate variable is automatically set in \workspace\__Global.cmd to: YYYYMMDDHHMMSSMM

The Version variable is set in: \workspace\BuildVersion.txt

The LDFLAGS variable is set in \workspace\__Global.cmd and then used by the scripts:

  • _Build.cmd
  • _BuildRaceDetector.cmd
  • _BuildRun.cmd
  • _Install.cmd

All the boilerplate code is already included in \workspace\src\hello\hello.go.

Boilerplate Tests

A boilerplate test package is also included at \workspace\src\hello\hello_test.go.

GCC Support

If you import packages into your workspace that need to be compiled (like github.com/mattn/go-sqlite3), you may receive this error message:

exec: "gcc": executable file not found in %PATH%

To install gcc and the other executables, I recommend downloading Win-builds and installing the 32-bit version to C:\mingw32 or the 64-bit version to C:\mingw64. Win-builds doesn't actually install, it just extracts the necessary files to those directories so it's nice and clean. LiteIDE and the batch scripts are already configured to use these directories if they exist.

golang-portable-windows's People

Contributors

josephspurrier 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.