Skip to content

Commit 651fca4

Browse files
committed
Moving to gclpr from lemonade. Latest go version and some code cleanup.
1 parent af0f5d9 commit 651fca4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+6740
-7209
lines changed

.gitignore

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
*.o
2-
*.a
31
*.exe
2+
*.exe~
43
*.dll
54
*.so
65
*.dylib
@@ -9,32 +8,14 @@
98
*.prof
109
*.mprof
1110
*.log
12-
*.svg
1311
*.7z
12+
*.syso
1413

15-
*.[568vq]
16-
[568vq].out
17-
18-
.undodir/
19-
.idea/
20-
.vscode/
21-
build/
2214
release/
15+
build/
2316
bin/
24-
_obj/
25-
/pkg/
26-
_test/
27-
testdata/
2817

2918
# build specific
3019
misc/version.go
31-
32-
*.cgo1.go
33-
*.cgo2.c
34-
_cgo_defun.c
35-
_cgo_gotypes.go
36-
_cgo_export.*
37-
_testmain.go
38-
.session.vim
39-
.set-project-env
40-
*.swp
20+
resources.rc
21+
manifest.xml

.golangci.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ linters:
2323
- whitespace
2424
- wsl
2525
- gomnd
26+
- nlreturn
27+
- wrapcheck
2628
fast: false
2729

2830
linters-settings:
@@ -48,4 +50,7 @@ issues:
4850
- text: "Subprocess launched with function call as argument or cmd arguments"
4951
linters:
5052
- gosec
53+
- text: "do not define dynamic errors"
54+
linters:
55+
- goerr113
5156

CMakeLists.txt

Lines changed: 34 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
cmake_minimum_required(VERSION 3.0)
22

3-
project(wsl-ssh-agent NONE)
4-
53
message(STATUS "Running cmake version ${CMAKE_VERSION}")
4+
if (NOT CMAKE_TOOLCHAIN_FILE)
5+
set(CMAKE_TOOLCHAIN_FILE "../cmake/win64.toolchain" CACHE STRING "default toolchain" FORCE)
6+
endif()
67
if (NOT CMAKE_BUILD_TYPE)
78
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "default to release build type" FORCE)
89
endif()
9-
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release")
10-
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
11-
message(STATUS "Generator: ${CMAKE_GENERATOR}")
12-
13-
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
14-
message(STATUS "********************************************************************************")
15-
message(STATUS "*** Do not forget to do \"make deps_vendor\" before switching to Release mode! ***")
16-
message(STATUS "********************************************************************************")
17-
endif()
1810

11+
project(wsl-ssh-agent NONE)
1912
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
2013

14+
message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
15+
message(STATUS "Generator: ${CMAKE_GENERATOR}")
16+
2117
# Release installation directory
2218
if(NOT CMAKE_CROSSCOMPILING)
2319
message(FATAL_ERROR "Currently unsuppored environment. CMake willl exit now.")
20+
else()
21+
set(HOST_GOOS linux)
22+
set(HOST_GOARCH amd64)
2423
endif()
2524

2625
if(MSYSTEM_NAME STREQUAL "win32")
@@ -38,7 +37,7 @@ endif()
3837
set(DEST_DIR "${PROJECT_SOURCE_DIR}/bin")
3938
message(STATUS "Installation directory: ${DEST_DIR}")
4039

41-
find_package(Go 1.13 REQUIRED)
40+
find_package(Go 1.15 REQUIRED)
4241
find_package(Git REQUIRED)
4342

4443
# Make sure we setup go properly
@@ -58,8 +57,9 @@ endif()
5857
########################################################################################################
5958

6059
# Project version number
61-
set(PRJ_VERSION_MAJOR 1)
62-
set(PRJ_VERSION_MINOR 4.2)
60+
set(PRJ_VERSION_Major "1")
61+
set(PRJ_VERSION_Minor "5")
62+
set(PRJ_VERSION_Patch "0")
6363

6464
if (EXISTS "${PROJECT_SOURCE_DIR}/.git" AND IS_DIRECTORY "${PROJECT_SOURCE_DIR}/.git")
6565
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/cmake/githash.sh ${GIT_EXECUTABLE}
@@ -74,22 +74,21 @@ else()
7474
set(GIT_HASH "no-git")
7575
endif()
7676
configure_file("${PROJECT_SOURCE_DIR}/cmake/version.go.in" "${PROJECT_SOURCE_DIR}/misc/version.go")
77+
configure_file("${PROJECT_SOURCE_DIR}/cmake/agent.rc.in" "${PROJECT_SOURCE_DIR}/resources.rc")
78+
configure_file("${PROJECT_SOURCE_DIR}/cmake/agent.xml.in" "${PROJECT_SOURCE_DIR}/manifest.xml")
7779

7880
# distribute history
79-
execute_process(COMMAND ${CMAKE_COMMAND} -E env ${GIT_EXECUTABLE} changelog --all --tag "${PRJ_VERSION_MAJOR}.${PRJ_VERSION_MINOR}" --stdout OUTPUT_FILE ${PROJECT_BINARY_DIR}/changelog.txt ERROR_QUIET)
81+
execute_process(COMMAND ${CMAKE_COMMAND} -E env ${GIT_EXECUTABLE} changelog --all --tag "v${PRJ_VERSION_Major}.${PRJ_VERSION_Minor}.${PRJ_VERSION_Patch}" --stdout OUTPUT_FILE ${PROJECT_BINARY_DIR}/changelog.txt ERROR_QUIET)
8082
install(FILES ${PROJECT_BINARY_DIR}/changelog.txt DESTINATION ${DEST_DIR} CONFIGURATIONS Release)
8183

82-
message(STATUS "Building version \"${PRJ_VERSION_MAJOR}.${PRJ_VERSION_MINOR}\" git \"${GIT_HASH}\"")
84+
message(STATUS "Building version \"${PRJ_VERSION_Major}.${PRJ_VERSION_Minor}.${PRJ_VERSION_Patch}\" git \"${GIT_HASH}\"")
8385

8486
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
8587
# Create git pre-commit hook to check formatting before commit
8688
if(EXISTS "${PROJECT_SOURCE_DIR}/.git" AND IS_DIRECTORY "${PROJECT_SOURCE_DIR}/.git")
8789
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/cmake/pre-commit ${PROJECT_SOURCE_DIR}/.git/hooks/. WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
8890
endif()
8991
endif()
90-
if(EXISTS "${PROJECT_SOURCE_DIR}/${KINDLEGEN}")
91-
execute_process(COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/${KINDLEGEN} ${PROJECT_BINARY_DIR}/.)
92-
endif()
9392

9493
########################################################################################################
9594
# Some contexts dependent settings
@@ -106,64 +105,46 @@ endif()
106105
########################################################################################################
107106

108107
add_custom_target(bin_agent ALL
109-
DEPENDS ${PROJECT_SOURCE_DIR}/static/files.go
108+
DEPENDS ${PROJECT_SOURCE_DIR}/resources.syso
110109
COMMAND GOPATH=${GO_PATH} GO111MODULE=on GOOS=${CROSS_GOOS} GOARCH=${CROSS_GOARCH}
111110
${GO_EXECUTABLE} build -trimpath -o ${PROJECT_BINARY_DIR}/wsl-ssh-agent-gui${CMAKE_EXECUTABLE_SUFFIX}
112-
-ldflags='-X main.LastGitCommit=${GIT_HASH} -H=windowsgui'
111+
-ldflags='-H=windowsgui'
113112
${GO_MOD_ARGS}
114113
COMMENT "Building wsl-ssh-agent-gui..."
115114
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}")
116115
install(PROGRAMS ${PROJECT_BINARY_DIR}/wsl-ssh-agent-gui${CMAKE_EXECUTABLE_SUFFIX} DESTINATION ${DEST_DIR} CONFIGURATIONS Release)
117116

117+
add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/resources.syso
118+
DEPENDS ${PROJECT_SOURCE_DIR}/resources.rc
119+
${PROJECT_SOURCE_DIR}/manifest.xml
120+
${PROJECT_SOURCE_DIR}/icon.ico
121+
COMMAND ${CMAKE_RC_COMPILER} -O coff
122+
-o ${PROJECT_SOURCE_DIR}/resources.syso
123+
-i ${PROJECT_SOURCE_DIR}/resources.rc
124+
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
125+
COMMENT "Building wsl-ssh-agent-gui resources...")
126+
118127
########################################################################################################
119128
# Development
120129
########################################################################################################
121130

122131
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
123132

124-
########################################################################################################
125-
# Code generation - on host platform only
126-
########################################################################################################
127-
128-
add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/go-bindata
129-
COMMAND GOPATH=${GO_PATH} GO111MODULE=on
130-
${GO_EXECUTABLE} build -o ${PROJECT_BINARY_DIR}/go-bindata
131-
github.com/shuLhan/go-bindata/cmd/go-bindata
132-
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
133-
COMMENT "Building go-bindata executable...")
134-
add_custom_target(bin_go-bindata
135-
DEPENDS ${PROJECT_BINARY_DIR}/go-bindata)
136-
137-
file(GLOB_RECURSE SRCS_STATIC LIST_DIRECTORIES false ${PROJECT_SOURCE_DIR}/static/*)
138-
list(REMOVE_ITEM SRCS_STATIC ${PROJECT_SOURCE_DIR}/static/files.go ${PROJECT_SOURCE_DIR}/static/doc.go)
139-
add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/static/files.go
140-
DEPENDS ${PROJECT_BINARY_DIR}/go-bindata ${SRCS_STATIC}
141-
# -nocompress
142-
COMMAND GOPATH=${GO_PATH}
143-
${PROJECT_BINARY_DIR}/go-bindata
144-
-prefix ${PROJECT_SOURCE_DIR}/static/
145-
-ignore static/files.go
146-
-ignore static/doc.go
147-
-pkg static
148-
-o static/files.go
149-
${PROJECT_SOURCE_DIR}/static/...
150-
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
151-
COMMENT "Generating Go resources for static assets")
152-
153133
########################################################################################################
154134
# Go linter
155135
########################################################################################################
156136

137+
157138
# Running linters on main target
158139
find_program(GO_LINTER golangci-lint PATHS ${PROJECT_BINARY_DIR} NO_DEFAULT_PATH)
159140
if(NOT GO_LINTER)
160-
set(golangci-lint-ver "1.22.2")
141+
set(golangci-lint-ver "1.33.0")
161142
message(STATUS "Preparing golangci-lint ${golangci-lint-ver}")
162143
file(DOWNLOAD "https://github.com/golangci/golangci-lint/releases/download/v${golangci-lint-ver}/golangci-lint-${golangci-lint-ver}-linux-amd64.tar.gz" ${PROJECT_BINARY_DIR}/golangci-lint.tar.gz
163144
INACTIVITY_TIMEOUT 60
164145
TIMEOUT 300
165146
STATUS DOWNLOAD_RES
166-
EXPECTED_HASH SHA256=109d38cdc89f271392f5a138d6782657157f9f496fd4801956efa2d0428e0cbe)
147+
EXPECTED_HASH SHA256=e2d6082f1df53c5d2c280765000f9e82783ea909ba419c6c4e172936b076031e)
167148
list(GET DOWNLOAD_RES 0 RES)
168149
list(GET DOWNLOAD_RES 1 MSG)
169150
if(RES)
@@ -178,7 +159,6 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
178159

179160
add_custom_target(lint
180161
COMMAND GOPATH=${GO_PATH} GO111MODULE=on GOOS=${CROSS_GOOS} GOARCH=${CROSS_GOARCH} ${GO_LINTER} run
181-
# COMMAND GOPATH=${GO_PATH} GO111MODULE=on ${GO_LINTER} run
182162
COMMENT "Mega-linting project with ${GO_LINTER}..."
183163
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}")
184164

@@ -193,17 +173,11 @@ if(CMAKE_BUILD_TYPE STREQUAL "Debug")
193173
COMMENT "Cleaning dependencies (go mod tidy)"
194174
VERBATIM)
195175

196-
add_custom_target(deps_verify
197-
SOURCES ${PROJECT_SOURCE_DIR}/go.mod
198-
COMMAND GOPATH=${GO_PATH} GO111MODULE=on GOOS=${CROSS_GOOS} GOARCH=${CROSS_GOARCH} ${GO_EXECUTABLE} mod verify
199-
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
200-
COMMENT "Verifying dependencies (go mod verify)"
201-
VERBATIM)
202-
203176
add_custom_target(deps_vendor
204177
SOURCES ${PROJECT_SOURCE_DIR}/go.mod
205178
COMMAND GOPATH=${GO_PATH} GO111MODULE=on GOOS=${CROSS_GOOS} GOARCH=${CROSS_GOARCH} ${GO_EXECUTABLE} mod vendor
206179
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
207180
COMMENT "Creating vendor directory (go mod vendor)"
208181
VERBATIM)
182+
209183
endif()

0 commit comments

Comments
 (0)