module
Version:
v0.3.1
Opens a new window with list of versions in this module.
Published: May 6, 2025
License: AGPL-3.0
Opens a new window with license information.
README
ΒΆ
Proposed Structure: Clean and CLI-Friendly
autoip-go/
βββ cmd/
β βββ autoip/
β βββ main.go # Entry point, uses urfave/cli v3
βββ commands/ # Formerly 'cli' β all CLI handlers
β βββ create.go
β βββ update.go
β βββ delete.go
β βββ show.go
β βββ test_notify.go
β βββ shared.go # Optional helpers for all commands
βββ config/
β βββ config.go
βββ cron/
β βββ cron.go
βββ ip/
β βββ fetch.go
βββ logger/
β βββ logger.go
βββ noip/
β βββ update.go
βββ notify/
β βββ notify.go
βββ termcolor/ # Former util/color.go
β βββ color.go
βββ dist/ # Built binaries go here
βββ go.mod
βββ go.sum
βββ Makefile
βββ README.md
π Why This Structure Works
Folder |
Responsibility |
cmd/autoip |
Main app entry point, CLI bootstrapping (main.go ) |
commands/ |
Each file is a CLI command mapped via urfave/cli/v3 |
config/ |
Load, validate and access TOML/YAML/ENV config |
logger/ |
Handles logging, stderr, waitgroups |
ip/ |
Fetch public IP, validate IP format, etc. |
noip/ |
Specific logic for interacting with No-IP |
notify/ |
Email notification logic (SMTP, TLS, etc.) |
cron/ |
Crontab creation, deletion, detection |
termcolor/ |
Fancy output formatting, coloring |
License
autoip is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later).
See LICENSE for the full text.
Click to show internal directories.
Click to hide internal directories.