Last active
September 22, 2024 14:49
-
-
Save whitep4nth3r/c178d99e8e3bd276c7d0047c3bd924da to your computer and use it in GitHub Desktop.
Reset a new Next.js application with an HTML language attribute, responsive font sizes, and cleaned up index.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Input flags | |
LANG="" | |
APP_NAME="" | |
# The directory path must be relative to where the script lives | |
DIR="" | |
# Loop through arguments and process them | |
for arg in "$@" | |
do | |
case $arg in | |
-h|--help) | |
echo "⚡️ Example script usage ⚡️" | |
echo "./reset-next.sh --lang=en --appname=\"my cool app\" --dir=this-test" | |
shift | |
exit; | |
;; | |
-l=*|--lang=*) | |
LANG="${arg#*=}" | |
shift | |
;; | |
-a=*|--appname=*) | |
APP_NAME="${arg#*=}" | |
shift | |
;; | |
-d=*|--dir=*) | |
DIR="${arg#*=}" | |
shift | |
;; | |
esac | |
done | |
change_dir () { | |
echo "✨ Changing directory to $1" | |
cd $1 | |
} | |
delete_vercel_svg () { | |
echo "❌ Deleting vercel.svg" | |
rm public/vercel.svg | |
} | |
delete_home_css () { | |
echo "❌ Deleting Home.module.css" | |
rm styles/Home.module.css | |
} | |
add_custom_document () { | |
echo "✅ Adding custom _document.js with lang=$LANG" | |
cd pages | |
echo 'import Document, { Html, Head, Main, NextScript } from "next/document"; | |
class MyDocument extends Document { | |
render() { | |
return ( | |
<Html lang="'$LANG'"> | |
<Head /> | |
<body> | |
<Main /> | |
<NextScript /> | |
</body> | |
</Html> | |
); | |
} | |
} | |
export default MyDocument;' >> _document.js | |
cd .. | |
} | |
replace_index () { | |
echo "✅ Replacing pages/index.js" | |
cd pages | |
rm index.js | |
echo 'import Head from "next/head"; | |
export default function Home() { | |
return ( | |
<> | |
<Head> | |
<title>'$APP_NAME'</title> | |
<meta name="description" content="Description for '$APP_NAME'" /> | |
<link rel="icon" href="/favicon.ico" /> | |
</Head> | |
<main> | |
<h1>This new Next.js app has been reset!</h1> | |
</main> | |
</> | |
); | |
}' >> index.js | |
cd .. | |
} | |
replace_globals_css () { | |
echo "✅ Replacing styles/globals.css" | |
cd styles | |
rm globals.css | |
echo 'html { | |
font-size: 100%; | |
} | |
body { | |
font-size: 1rem; | |
padding: 0; | |
margin: 0; | |
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, | |
Fira Sans, Droid Sans, Helvetica Neue, sans-serif; | |
} | |
* { | |
box-sizing: border-box; | |
} | |
' >> globals.css | |
cd .. | |
} | |
echo "🔥 Resetting Next.js app in $DIR" | |
echo "✨ Language: $LANG" | |
echo "✨ App name: $APP_NAME" | |
change_dir $DIR | |
delete_vercel_svg | |
delete_home_css | |
add_custom_document | |
replace_index | |
replace_globals_css | |
echo "✨ Opening project in VSCode" | |
code . | |
echo "📣 DONE. Have a nice day!" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment