1+ #! /bin/bash
2+
3+ # Script to install Kempt locally for testing
4+ # This script sets up the pre-release version of Kempt for use in other projects
5+
6+ set -e
7+
8+ KEMPT_PACKAGE_PATH=" /Users/craig/projects/kempt/local-packages/kempt-2.7.1-beta.1.tgz"
9+ PROJECTS_DIR=" /Users/craig/projects"
10+
11+ # Check if the package exists
12+ if [[ ! -f " $KEMPT_PACKAGE_PATH " ]]; then
13+ echo " Error: Package not found at $KEMPT_PACKAGE_PATH "
14+ echo " Please run 'just pack' to create the package first"
15+ exit 1
16+ fi
17+
18+ # Function to set up Kempt for a project
19+ setup_kempt () {
20+ local project_path=" $1 "
21+ local project_name=$( basename " $project_path " )
22+
23+ if [[ ! -d " $project_path " ]]; then
24+ echo " Skipping $project_name - directory not found"
25+ return
26+ fi
27+
28+ echo " Setting up Kempt for $project_name ..."
29+
30+ # Check if it's a Node.js project
31+ if [[ -f " $project_path /package.json" ]]; then
32+ echo " 📦 Node.js project detected - installing via npm"
33+ cd " $project_path "
34+ npm install --save-dev " $KEMPT_PACKAGE_PATH "
35+
36+ # Update prettier config if it exists
37+ if [[ -f .prettierrc.js ]]; then
38+ echo " Updating .prettierrc.js for $project_name ..."
39+ sed -i ' ' ' s/prettier-plugin-java/kempt/g' .prettierrc.js
40+ fi
41+
42+ if [[ -f .prettierrc.json ]]; then
43+ echo " Updating .prettierrc.json for $project_name ..."
44+ sed -i ' ' ' s/prettier-plugin-java/kempt/g' .prettierrc.json
45+ fi
46+
47+ if [[ -f .prettierrc ]]; then
48+ echo " Updating .prettierrc for $project_name ..."
49+ sed -i ' ' ' s/prettier-plugin-java/kempt/g' .prettierrc
50+ fi
51+
52+ echo " ✅ Kempt installed successfully in $project_name "
53+
54+ # Check if it's a mise-based project
55+ elif [[ -f " $project_path /mise.toml" || -f " $project_path /.mise.toml" ]]; then
56+ echo " 🔧 mise-based project detected"
57+ echo " 📋 To use Kempt in $project_name :"
58+ echo " 1. Add to your mise.toml:"
59+ echo " \" npm:kempt\" = \" file:$KEMPT_PACKAGE_PATH \" "
60+ echo " 2. Run: mise install"
61+ echo " 3. Update your justfile to use 'kempt' instead of 'prettier-plugin-java'"
62+ echo " 4. Or use directly: npx kempt --write '**/*.java'"
63+
64+ # Check if it's a Maven project
65+ elif [[ -f " $project_path /pom.xml" ]]; then
66+ echo " ☕ Maven project detected"
67+ echo " 📋 To use Kempt in $project_name :"
68+ echo " 1. Extract the package to a local directory:"
69+ echo " tar -xzf $KEMPT_PACKAGE_PATH -C /tmp/"
70+ echo " 2. Install the extracted package globally:"
71+ echo " npm install -g /tmp/package"
72+ echo " 3. Update your Maven configuration to use 'kempt' instead of 'prettier-plugin-java'"
73+ echo " 4. Or use directly: npx kempt --write '**/*.java'"
74+
75+ else
76+ echo " ❓ Project type not recognized for $project_name "
77+ echo " 📋 To use Kempt manually:"
78+ echo " 1. Extract and install the package:"
79+ echo " tar -xzf $KEMPT_PACKAGE_PATH -C /tmp/"
80+ echo " npm install -g /tmp/package"
81+ echo " 2. Use directly: npx kempt --write '**/*.java'"
82+ fi
83+
84+ echo " "
85+ }
86+
87+ # Set up in liftwizard
88+ setup_kempt " $PROJECTS_DIR /liftwizard"
89+
90+ # Set up in klass
91+ setup_kempt " $PROJECTS_DIR /klass"
92+
93+ # Return to original directory
94+ cd " $PROJECTS_DIR /kempt"
95+
96+ echo " 🎉 Setup complete!"
97+ echo " "
98+ echo " 📦 Package created at: $KEMPT_PACKAGE_PATH "
99+ echo " 🧪 To test the formatting, you can run:"
100+ echo " npx kempt --write '**/*.java'"
101+ echo " "
102+ echo " 💡 For Maven projects using Spotless, update your pom.xml to use 'kempt' instead of 'prettier-plugin-java'"
0 commit comments