diff --git a/.gitignore b/.gitignore index 63880f228..0319e6d68 100644 --- a/.gitignore +++ b/.gitignore @@ -16,8 +16,6 @@ *.pyc *.swp .DS_Store -.vscode -.vscode/* /trunk/Makefile /trunk/objs /trunk/src/build-qt-Desktop-Debug @@ -42,4 +40,6 @@ cmake-build-debug /trunk/ide/srs_clion/Makefile /trunk/ide/srs_clion/cmake_install.cmake /trunk/ide/srs_clion/srs -/trunk/ide/srs_clion/Testing/ \ No newline at end of file +/trunk/ide/srs_clion/Testing/ +/trunk/ide/vscode-build + diff --git a/.vscode/README.md b/.vscode/README.md new file mode 100644 index 000000000..eb513707b --- /dev/null +++ b/.vscode/README.md @@ -0,0 +1,38 @@ +# Debug with VSCode + +Support run and debug with VSCode. + +## SRS + +Install the following extensions: + +- CMake Tools +- CodeLLDB +- C/C++ Extension Pack + +Open the folder like `~/git/srs` in VSCode. +Run commmand `> CMake: Configure` to configure the project. + +> Note: You can press `Ctrl+R`, then type `CMake: Configure` then select `Clang` as the toolchain. + +> Note: The `settings.json` is used to configure the cmake. It will use `${workspaceFolder}/trunk/ide/srs_clion/CMakeLists.txt` +> and `${workspaceFolder}/trunk/ide/vscode-build` as the source file and build directory. + +Click the `Run > Run Without Debugging` button to start the server. + +> Note: The `launch.json` is used for running and debugging. The build will output the binary to +> `${workspaceFolder}/trunk/ide/vscode-build/srs`. + +## Proxy + +Install the following extensions: + +- Go + +Open the folder like `~/git/srs` in VSCode. + +Select the `View > Run` and select `Launch srs-proxy` to start the proxy server. + +Click the `Run > Run Without Debugging` button to start the server. + +> Note: The `launch.json` is used for running and debugging. diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..047efcbfd --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,36 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch SRS", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/trunk/ide/vscode-build/srs", + "args": ["-c", "conf/console.conf"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}/trunk", + "environment": [], + "externalConsole": false, + "MIMode": "lldb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ], + "preLaunchTask": "build", + "logging": { + "engineLogging": true + } + }, + { + "name": "Launch srs-proxy", + "type": "go", + "request": "launch", + "mode": "auto", + "cwd": "${workspaceFolder}/proxy", + "program": "${workspaceFolder}/proxy" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..0d9dbf97b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "cmake.sourceDirectory": "${workspaceFolder}/trunk/ide/srs_clion", + "cmake.buildDirectory": "${workspaceFolder}/trunk/ide/vscode-build", + "cmake.configureOnOpen": false +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 000000000..98388f3b3 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,17 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "type": "shell", + "command": "cmake --build ${workspaceFolder}/trunk/ide/vscode-build", + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": ["$gcc"], + "detail": "Build SRS by cmake." + } + ] + } + \ No newline at end of file diff --git a/proxy/env.go b/proxy/env.go index 26b014609..d60726354 100644 --- a/proxy/env.go +++ b/proxy/env.go @@ -5,7 +5,7 @@ package main import ( "context" - "io/ioutil" + "io" "os" "path" "strings" @@ -32,12 +32,14 @@ func loadEnvFile(ctx context.Context) error { } defer file.Close() - b, err := ioutil.ReadAll(file) + b, err := io.ReadAll(file) if err != nil { return errors.Wrapf(err, "read %v", envFile) } lines := strings.Split(strings.Replace(string(b), "\r\n", "\n", -1), "\n") + logger.Df(ctx, "load env file %v, lines=%v", envFile, len(lines)) + for _, line := range lines { if strings.HasPrefix(strings.TrimSpace(line), "#") { continue