summaryrefslogtreecommitdiffstats
path: root/assets/sass/@primer/css/bin/primer-migrate
diff options
context:
space:
mode:
Diffstat (limited to 'assets/sass/@primer/css/bin/primer-migrate')
-rw-r--r--assets/sass/@primer/css/bin/primer-migrate86
1 files changed, 0 insertions, 86 deletions
diff --git a/assets/sass/@primer/css/bin/primer-migrate b/assets/sass/@primer/css/bin/primer-migrate
deleted file mode 100644
index fb250c1..0000000
--- a/assets/sass/@primer/css/bin/primer-migrate
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/env node
-
-/**
- * XXX: we use Node.js native modules only here to avoid
- * requiring any runtime dependencies when folks install
- * @primer/css
- */
-
-const fs = require('fs')
-const {promisify} = require('util')
-const readFile = promisify(fs.readFile)
-const writeFile = promisify(fs.writeFile)
-const {dirname, join} = require('path')
-
-const IMPORT_PATTERN = /\@import\s+['"]([^'"]+)['"]/g
-const replacements = [
- [/primer-marketing-(\w+)(\/lib)?/, '@primer/css/marketing/$1'],
- [/primer-(\w+)(\/lib)?/, '@primer/css/$1'],
- [/primer\b/, '@primer/css']
-]
-
-const paths = process.argv.slice(2)
-const warn = (...args) => console.warn(...args)
-
-if (paths.length) {
- Promise.all(
- paths.map(path => {
- return migrate(path).then(reps => report(reps, path))
- })
- ).catch(die)
-} else {
- readFile('/dev/stdin', 'utf8')
- .then(input => {
- const [output, reps] = replace(input)
- report(reps, 'stdin')
- process.stdout.write(output)
- })
- .catch(die)
-}
-
-function migrate(path) {
- return readFile(path, 'utf8').then(input => {
- if (!IMPORT_PATTERN.test(input)) {
- warn(`No SCSS imports found in ${path}`)
- return false
- }
-
- const [output, reps] = replace(input)
- if (reps.length) {
- return writeFile(path, output, 'utf8').then(() => reps)
- } else {
- return false
- }
- })
-}
-
-function replace(input) {
- const reps = []
- const output = input.replace(IMPORT_PATTERN, (str, path) => {
- for (const [from, to] of replacements) {
- if (from.test(path)) {
- const replaced = str.replace(from, to)
- reps.push([path, path.replace(from, to)])
- return replaced
- }
- }
- return str
- })
- return [output, reps]
-}
-
-function report(reps, path) {
- if (reps.length) {
- warn(`Replaced ${reps.length} imports in ${path}:`)
- for (const [i, [from, to]] of Object.entries(reps)) {
- warn(` ${Number(i) + 1}. (${from}) -> (${to})`)
- }
- } else {
- warn(`No legacy imports found in ${path}`)
- }
-}
-
-function die(error) {
- console.error(error)
- process.exitCode = 1
-}