feat: enhance target handling and improve release/install workflows

- Add file target support to heuristics with automatic TargetSpace derivation and comprehensive unit tests for file path parsing
- Display target space folder location during workflow execution for both module and flow runs
- Fix IP address handling in URL parsing to correctly identify and extract root domain for IP targets
- Add goreleaser --mark-latest flag to manual release workflow for consistent release tagging
- Improve install binary help text and add progress feedback for silent mode installations
- Replace deprecated --list-registry-binaries with --list-registry-direct-fetch and --list-registry-nix-build examples
This commit is contained in:
j3ssie
2026-01-21 17:20:52 +08:00
parent d21acbaf1a
commit 344e6117ca
6 changed files with 170 additions and 11 deletions
+7 -2
View File
@@ -88,7 +88,8 @@ var installBinaryCmd = &cobra.Command{
Short: "Install binary tools from registry",
Long: `Install one or more binary tools from the registry. Skips binaries already available in PATH.`,
Example: ` # List binaries in registry
osmedeus install binary --list-registry-binaries
osmedeus install binary --list-registry-direct-fetch
osmedeus install binary --list-registry-nix-build
# Install specific binaries
osmedeus install binary --name nuclei
@@ -1466,7 +1467,8 @@ func printInstallBinaryHelp(cmd *cobra.Command) {
fmt.Println(terminal.BoldCyan("◆ Examples"))
fmt.Printf(" %s\n", terminal.Green("# List available binaries"))
fmt.Printf(" %s\n\n", terminal.Gray("osmedeus install binary --list-registry-binaries"))
fmt.Printf(" %s\n", terminal.Gray("osmedeus install binary --list-registry-direct-fetch"))
fmt.Printf(" %s\n\n", terminal.Gray("osmedeus install binary --list-registry-nix-build"))
fmt.Printf(" %s\n", terminal.Green("# Install specific binaries (auto-detects method from registry)"))
fmt.Printf(" %s\n", terminal.Gray("osmedeus install binary --name nuclei"))
@@ -1743,6 +1745,9 @@ func installBinariesParallel(names []string, registry installer.BinaryRegistry,
go func() {
defer wg.Done()
for name := range workCh {
if silent {
fmt.Printf(" %s Installing: %s\n", terminal.SymbolBullet, terminal.Cyan(name))
}
err := installer.InstallBinary(name, registry, binariesFolder, headers)
statusMu.Lock()
if err != nil {