11#! /bin/bash
22
33# Script to install Kempt locally for testing
4- # This script sets up the pre-release version of Kempt for use in other projects
4+ # This script sets up the pre-release version of Kempt for use in the current project
55
66set -e
77
8- KEMPT_PACKAGE_PATH=" /Users/craig/projects/kempt/local-packages/kempt-2.7.1-beta.1.tgz"
9- PROJECTS_DIR=" /Users/craig/projects"
8+ KEMPT_PACKAGE_PATH=" /Users/craig/projects/kempt/local-packages/kempt-2.7.1-beta.2.tgz"
109
1110# Check if the package exists
1211if [[ ! -f " $KEMPT_PACKAGE_PATH " ]]; then
1312 echo " Error: Package not found at $KEMPT_PACKAGE_PATH "
14- echo " Please run 'just pack' to create the package first"
13+ echo " Please run 'just pack' from /Users/craig/projects/kempt to create the package first"
1514 exit 1
1615fi
1716
17+ # Function to install globally
18+ install_globally () {
19+ echo " 🌍 Installing Kempt globally..."
20+ npm install -g " $KEMPT_PACKAGE_PATH "
21+ echo " ✅ Kempt installed globally!"
22+ echo " 📋 You can now use:"
23+ echo " - npx kempt --write '**/*.java'"
24+ echo " - kempt --write '**/*.java' (if globally installed)"
25+ exit 0
26+ }
27+
1828# Function to set up Kempt for a project
1929setup_kempt () {
2030 local project_path=" $1 "
2131 local project_name=$( basename " $project_path " )
2232
23- if [[ ! -d " $project_path " ]]; then
24- echo " Skipping $project_name - directory not found"
25- return
26- fi
27-
2833 echo " Setting up Kempt for $project_name ..."
29-
34+
35+ # Check if mise is available and this is a mise project
36+ if command -v mise & > /dev/null && (cd " $project_path " && mise ls 2> /dev/null | grep -q .); then
37+ echo " 🔧 mise-based project detected"
38+ echo " 📋 Installing Kempt locally for $project_name ..."
39+
40+ cd " $project_path "
41+
42+ # Create package.json if it doesn't exist
43+ if [[ ! -f package.json ]]; then
44+ echo " Creating package.json..."
45+ npm init -y > /dev/null
46+ fi
47+
48+ # Install the local package
49+ npm install --save-dev " $KEMPT_PACKAGE_PATH "
50+
51+ echo " ✅ Kempt installed successfully in $project_name "
52+ echo " 📋 You can now:"
53+ echo " 1. Use: npx prettier --write '**/*.java' --plugin kempt"
54+ echo " 2. Add to .prettierrc: { \" plugins\" : [\" kempt\" ] }"
55+ echo " 3. Then just use: npx prettier --write '**/*.java'"
56+
3057 # Check if it's a Node.js project
31- if [[ -f " $project_path /package.json" ]]; then
58+ elif [[ -f " $project_path /package.json" ]]; then
3259 echo " 📦 Node.js project detected - installing via npm"
3360 cd " $project_path "
3461 npm install --save-dev " $KEMPT_PACKAGE_PATH "
@@ -50,17 +77,10 @@ setup_kempt() {
5077 fi
5178
5279 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-
80+ echo " 📋 You can now:"
81+ echo " 1. Use: npx kempt --write '**/*.java'"
82+ echo " 2. Or update your prettier config to use 'kempt' plugin instead of 'prettier-plugin-java'"
83+
6484 # Check if it's a Maven project
6585 elif [[ -f " $project_path /pom.xml" ]]; then
6686 echo " ☕ Maven project detected"
@@ -82,21 +102,25 @@ setup_kempt() {
82102 fi
83103
84104 echo " "
105+ echo " 📦 Package: $KEMPT_PACKAGE_PATH "
106+ echo " 🧪 To test the formatting: npx kempt --write '**/*.java'"
85107}
86108
87- # Set up in liftwizard
88- setup_kempt " $PROJECTS_DIR /liftwizard"
89-
90- # Set up in klass
91- setup_kempt " $PROJECTS_DIR /klass"
109+ # Check for global flag
110+ if [[ " $1 " == " --global" || " $1 " == " -g" ]]; then
111+ install_globally
112+ fi
92113
93- # Return to original directory
94- cd " $PROJECTS_DIR /kempt"
114+ # If no arguments provided, show usage
115+ if [[ $# -eq 0 ]]; then
116+ echo " Usage: $0 [--global|-g] [project-path]"
117+ echo " --global, -g Install globally instead of locally"
118+ echo " project-path Path to project (default: current directory)"
119+ echo " "
95120
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'"
121+ # Use current directory as default
122+ setup_kempt " $( pwd) "
123+ else
124+ # Set up for provided project path
125+ setup_kempt " $1 "
126+ fi
0 commit comments