Skip to content

Commit 5a12319

Browse files
authored
Merge pull request #2 from jakec-dev/feat/I-1-init-go-and-dirs
feat: Initialise Go module and directory structure
2 parents ecb5520 + 7ab1083 commit 5a12319

File tree

11 files changed

+215
-1
lines changed

11 files changed

+215
-1
lines changed

.gitignore

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
#################
2+
## Common
3+
#################
4+
5+
# env files
6+
.env
7+
.env.development.local
8+
.env.test.local
9+
.env.production.local
10+
.env.local
11+
12+
# Editor/IDE
13+
.idea/
14+
.vscode/
15+
.vscode-test
16+
17+
# AI
18+
.claude/
19+
CLAUDE.md
20+
.roo/
21+
.rooignore
22+
.roorules
23+
24+
# TEMP: Project planning documents
25+
docs/tasks/
26+
27+
#################
28+
## GoLang
29+
#################
30+
31+
# Binaries for programs and plugins
32+
*.exe
33+
*.exe~
34+
*.dll
35+
*.so
36+
*.dylib
37+
38+
# Test binary, built with `go test -c`
39+
*.test
40+
41+
# Code coverage profiles and other test artifacts
42+
*.out
43+
coverage.*
44+
*.coverprofile
45+
profile.cov
46+
47+
# Go workspace file
48+
go.work
49+
go.work.sum
50+
51+
#################
52+
## Node.js
53+
#################
54+
55+
# Logs
56+
logs
57+
*.log
58+
.pnpm-debug.log*
59+
60+
# Diagnostic reports (https://nodejs.org/api/report.html)
61+
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
62+
63+
# Runtime data
64+
pids
65+
*.pid
66+
*.seed
67+
*.pid.lock
68+
69+
# Compiled binary addons (https://nodejs.org/api/addons.html)
70+
build/Release
71+
72+
# Dependency directories
73+
node_modules/
74+
75+
# TypeScript cache
76+
*.tsbuildinfo
77+
78+
# Optional eslint cache
79+
.eslintcache
80+
81+
# Optional REPL history
82+
.node_repl_history
83+
84+
# Output of 'npm pack'
85+
*.tgz

CONTRIBUTING.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# Contributing to aws-local-sync
2+
3+
Thanks for your interest in contributing to **aws-local-sync**! This guide outlines the basics for setting up your development environment, understanding the project structure, and contributing effectively.
4+
5+
## Development Setup
6+
7+
1. **Clone the repo**
8+
9+
```sh
10+
git clone https://github.com/jakec-dev/aws-local-sync.git
11+
cd aws-local-sync
12+
```
13+
14+
2. **Build the CLI**
15+
16+
```sh
17+
go build -o bin/aws-local-sync ./cmd/aws-local-sync
18+
```
19+
20+
3. **Run it**
21+
22+
```sh
23+
./bin/aws-local-sync
24+
```
25+
26+
4. **Run tests**
27+
28+
(Test suite coming soon)
29+
30+
## Contributing Guidelines
31+
32+
- Feature requests and bug reports are welcome via GitHub Issues.
33+
- Follow idiomatic Go and ensure your code passes go fmt.
34+
- Use semantic commits (e.g., feat: add support for S3 source).
35+
- Prefer small, focused pull requests with clear descriptions.
36+
37+
## Project Structure
38+
39+
```text
40+
cmd/aws-local-sync/ # CLI entry point (main.go) using Cobra
41+
internal/ # Core logic (sync engine, providers, targets)
42+
├── sync/ # Sync manager and orchestration
43+
├── providers/ # AWS service-specific data exporters
44+
├── targets/ # Local import destinations (e.g. Docker, dir)
45+
└── config/ # YAML parsing, validation, and discovery
46+
pkg/ # Optional: shared libraries (exported APIs)
47+
scripts/ # Dev scripts and tooling
48+
testdata/ # Synthetic data for testing
49+
```
50+
51+
## Thanks!
52+
53+
Your contributions help make aws-local-sync better for everyone. Whether it's fixing bugs, suggesting features, or improving docs — you're appreciated.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Jake Clayton
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,46 @@
1-
# aws-local-sync
1+
# aws-local-sync
2+
3+
**aws-local-sync** is a high-performance CLI tool that syncs data from AWS services into your local development environment. It's designed to be **simple**, **fast**, **reliable**, and **developer-friendly**, with support for plugins, caching, and seamless workflow integration.
4+
5+
Key features:
6+
7+
- ⚡ Zero-config for common syncs
8+
- 🔁 Reliable with retries, caching, and recovery
9+
- 🔌 Extensible architecture (providers & targets)
10+
- 🧠 Developer-friendly CLI with helpful commands
11+
- 📦 Node.js wrapper for easy cross-platform installs
12+
13+
> This project is currently in active development. Expect rapid iteration, breaking changes, and new modules as core components are implemented.
14+
15+
## Getting Started
16+
17+
### Option 1: Install with Go
18+
19+
```sh
20+
go install github.com/jakec-dev/aws-local-sync/cmd/aws-local-sync@latest
21+
22+
# Then use it from anywhere:
23+
aws-local-sync
24+
```
25+
26+
### Option 2: Run from source
27+
28+
```sh
29+
# Clone the repo
30+
git clone https://github.com/jakec-dev/aws-local-sync.git
31+
cd aws-local-sync
32+
33+
# Build the CLI
34+
go build -o bin/aws-local-sync ./cmd/aws-local-sync
35+
36+
# Run the CLI
37+
./bin/aws-local-sync
38+
```
39+
40+
## Contributing
41+
42+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines.
43+
44+
## License
45+
46+
This project is licensed under the [MIT License](LICENSE).

build/.gitkeep

Whitespace-only changes.

cmd/aws-local-sync/main.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package main
2+
3+
import "fmt"
4+
5+
func main() {
6+
fmt.Println("Placeholder")
7+
}

docs/.gitkeep

Whitespace-only changes.

go.mod

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
module github.com/jakec-dev/aws-local-sync
2+
3+
go 1.24.3

internal/config/.gitkeep

Whitespace-only changes.

internal/providers/.gitkeep

Whitespace-only changes.

0 commit comments

Comments
 (0)