diff --git a/README.md b/README.md index 6188c59..03f158c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ # Set of skills by @rodydavis -- [Flutter Screenshot/Control](/skills/flutter_driver_control/) +### flutter-control-and-screenshot +Guide on how to control a Flutter app using flutter_driver via MCP and capture screenshots. + +```bash +npx skills add rodydavis/flutter-control-and-screenshot +``` + +### install-flutter-from-git +Install Flutter SDK via git clone and configure for all platforms + +```bash +npx skills add rodydavis/install-flutter-from-git +``` + diff --git a/scripts/update_readme.js b/scripts/update_readme.js new file mode 100644 index 0000000..0cb44f1 --- /dev/null +++ b/scripts/update_readme.js @@ -0,0 +1,72 @@ +const fs = require('fs'); +const path = require('path'); + +const skillsDir = path.join(__dirname, '../skills'); +const readmePath = path.join(__dirname, '../README.md'); + +// Helper to look for SKILL.md files recursively +function findSkillFiles(dir, fileList = []) { + const files = fs.readdirSync(dir); + + files.forEach(file => { + const filePath = path.join(dir, file); + const stat = fs.statSync(filePath); + + if (stat.isDirectory()) { + findSkillFiles(filePath, fileList); + } else if (file === 'SKILL.md') { + fileList.push(filePath); + } + }); + + return fileList; +} + +// Helper to parse frontmatter +function parseFrontmatter(content) { + const match = content.match(/^---\n([\s\S]*?)\n---/); + if (!match) return null; + + const frontmatter = {}; + const lines = match[1].split('\n'); + + lines.forEach(line => { + const [key, ...valueParts] = line.split(':'); + if (key && valueParts.length > 0) { + frontmatter[key.trim()] = valueParts.join(':').trim(); + } + }); + + return frontmatter; +} + +function main() { + console.log('Scanning for skills...'); + const skillFiles = findSkillFiles(skillsDir); + + let readmeContent = '# Set of skills by @rodydavis\n\n'; + + skillFiles.forEach(file => { + const content = fs.readFileSync(file, 'utf8'); + const frontmatter = parseFrontmatter(content); + + if (frontmatter && frontmatter.name) { + console.log(`Found skill: ${frontmatter.name}`); + + readmeContent += `### ${frontmatter.name}\n`; + if (frontmatter.description) { + readmeContent += `${frontmatter.description}\n\n`; + } + + readmeContent += '```bash\n'; + readmeContent += `npx skills add rodydavis/${frontmatter.name}\n`; + readmeContent += '```\n\n'; + } + }); + + console.log('Updating README.md...'); + fs.writeFileSync(readmePath, readmeContent); + console.log('Done!'); +} + +main(); diff --git a/skills.yaml b/skills.yaml new file mode 100644 index 0000000..4498597 --- /dev/null +++ b/skills.yaml @@ -0,0 +1,5 @@ +output: skills +flat: true +file_rename: SKILL.md +patterns: + - "https://rodydavis.com/posts/*" \ No newline at end of file diff --git a/skills/install-flutter-from-git/SKILL.md b/skills/install-flutter-from-git/SKILL.md new file mode 100644 index 0000000..8b614e8 --- /dev/null +++ b/skills/install-flutter-from-git/SKILL.md @@ -0,0 +1,146 @@ +--- +name: install-flutter-from-git +description: Install Flutter SDK via git clone and configure for all platforms +--- + +# Install Flutter from Git + +This skill guides you through installing the Flutter SDK using `git clone` and setting up the environment for Web, Mobile, and Desktop development. + +## 1. Prerequisites (All Platforms) + +Ensure you have the following installed: +- **Git**: [Install Git](https://git-scm.com/downloads) +- **Curl/Unzip** (macOS/Linux usually have these; Windows usually needs Git Bash or similar) + +## 2. Install Flutter SDK + +### macOS / Linux +Open your terminal and run the following commands to clone the stable branch of the Flutter SDK. + +```bash +# Create a directory for development (e.g., ~/development) +mkdir -p ~/development +cd ~/development + +# Clone the Flutter SDK +git clone https://github.com/flutter/flutter.git -b stable +``` + +### Windows +Open PowerShell or Command Prompt. + +```powershell +# Create a directory for development (e.g., C:\src) +mkdir C:\src +cd C:\src + +# Clone the Flutter SDK +git clone https://github.com/flutter/flutter.git -b stable +``` + +## 3. Add Flutter to PATH + +To run `flutter` commands from any terminal, you must add the SDK's `bin` directory to your PATH. + +### macOS (Zsh) / Linux (Bash/Zsh) +1. Open your shell configuration file (e.g., `~/.zshrc`, `~/.bashrc`, or `~/.zshenv`). +2. Add the following line (replace `~/development/flutter` with your actual path): + + ```bash + export PATH="$PATH:$HOME/development/flutter/bin" + ``` +3. Refresh your current terminal: + ```bash + source ~/.zshrc # or ~/.bashrc + ``` + +### Windows +1. Press `Win + S`, type "env", and select **Edit the system environment variables**. +2. Click **Environment Variables**. +3. Under **User variables**, select **Path** and click **Edit**. +4. Click **New** and add the full path to `flutter\bin` (e.g., `C:\src\flutter\bin`). +5. Click **OK** on all windows. +6. Restart your terminal/PowerShell. + +## 4. Verify Installation + +Run the following command to check for missing dependencies: + +```bash +flutter doctor +``` + +## 5. Platform Setup + +### Web (Chrome) +1. **Install Chrome**: Ensure Google Chrome is installed. +2. **Enable Web Support** (usually enabled by default): + ```bash + flutter config --enable-web + ``` +3. **Verify**: Run `flutter devices` to see "Chrome" listed. + +### Mobile (iOS & Android) + +#### iOS (macOS only) +1. **Install Xcode**: Download from the Mac App Store. +2. **Configure Command Line Tools**: + ```bash + sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer + sudo xcodebuild -runFirstLaunch + ``` +3. **Install CocoaPods** (for dependency management): + ```bash + sudo gem install cocoapods + ``` +4. **Simulator**: Open via `open -a Simulator`. + +#### Android (All Operating Systems) +1. **Install Android Studio**: [Download here](https://developer.android.com/studio). +2. **Install SDK Components**: + - Open Android Studio -> SDK Manager. + - Install **Android SDK Platform-Tools**. + - Install **Android SDK Command-line Tools (latest)**. +3. **Accept Licenses**: + ```bash + flutter doctor --android-licenses + ``` + (Press `y` to accept all licences). +4. **Emulator**: Create a device in AVD Manager. + +### Desktop (macOS, Windows, Linux) + +#### macOS Desktop +1. **Install Xcode**: (Same as iOS steps above). +2. **Enable macOS**: + ```bash + flutter config --enable-macos-desktop + ``` + +#### Windows Desktop +1. **Install Visual Studio** (not VS Code): [Download VS Community](https://visualstudio.microsoft.com/downloads/). +2. **Workloads**: When installing, select **Desktop development with C++**. +3. **Enable Windows**: + ```bash + flutter config --enable-windows-desktop + ``` + +#### Linux Desktop +1. **Install Dependencies** (Ubuntu/Debian example): + ```bash + sudo apt-get update + sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev liblzma-dev + ``` +2. **Enable Linux**: + ```bash + flutter config --enable-linux-desktop + ``` + +## 6. Final Check + +Run `flutter doctor` again to ensure all desired platforms have checkmarks. + +```bash +flutter doctor -v +```