chabou / hyper-autoprofile

Extension for Hyper.app to configure terminal appearance according to current shell prompt
MIT License
37 stars 4 forks source link

Cannot read property debug of undefined #2

Closed shankie-codes closed 7 years ago

shankie-codes commented 7 years ago

I would absolutely looooove to use this plugin – it's what I've always been waiting for in a terminal. However, I'm getting the following error whenever I load the plugin (and it doesn't work):

bundle.js:1 TypeError: Cannot read property 'debug' of undefined
    at exports.reduceUI (/Users/shankie/.hyper_plugins/node_modules/hyper-autoprofile/index.js:175:49)
    at pe.forEach.be (file:///Applications/Hyper.app/Contents/Resources/app/dist/bundle.js:1:4851)
    at Array.forEach (native)
    at file:///Applications/Hyper.app/Contents/Resources/app/dist/bundle.js:1:4824
    at file:///Applications/Hyper.app/Contents/Resources/app/dist/bundle.js:47:373678
    at dispatch (file:///Applications/Hyper.app/Contents/Resources/app/dist/bundle.js:4:46753)
    at N (file:///Applications/Hyper.app/Contents/Resources/app/dist/bundle.js:4:837)
    at P (file:///Applications/Hyper.app/Contents/Resources/app/dist/bundle.js:4:929)
    at action (/Users/shankie/.hyper_plugins/node_modules/hyper-autoprofile/index.js:117:3)
    at /Users/shankie/.hyper_plugins/node_modules/hypercwd/index.js:46:3

Any ideas?

chabou commented 7 years ago

Can you give me your .hyper.js config file ?

shankie-codes commented 7 years ago

I can indeed @chabou

module.exports = {
  config: {
    // default font size in pixels for all tabs
    fontSize: 18,

    // font family with optional fallbacks
    fontFamily: 'Hasklig, Menlo, "DejaVu Sans Mono", "Lucida Console", monospace',

    // terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
    cursorColor: 'rgba(248,28,229,0.8)',

    // `BEAM` for |, `UNDERLINE` for _, `BLOCK` for █
    cursorShape: 'BLOCK',

    // color of the text
    foregroundColor: '#fff',

    // terminal background color
    backgroundColor: '#000',

    // border color (window, tabs)
    borderColor: '#333',

    // custom css to embed in the main window
    css: '',

    // custom css to embed in the terminal window
    termCSS: '',

    // set to `true` if you're using a Linux set up
    // that doesn't shows native menus
    // default: `false` on Linux, `true` on Windows (ignored on macOS)
    showHamburgerMenu: '',

    // set to `false` if you want to hide the minimize, maximize and close buttons
    // additionally, set to `'left'` if you want them on the left, like in Ubuntu
    // default: `true` on windows and Linux (ignored on macOS)
    showWindowControls: '',

    // custom padding (css format, i.e.: `top right bottom left`)
    padding: '12px 14px',

    // the full list. if you're going to provide the full color palette,
    // including the 6 x 6 color cubes and the grayscale map, just provide
    // an array here instead of a color map object
    colors: {
      black: '#000000',
      red: '#ff0000',
      green: '#33ff00',
      yellow: '#ffff00',
      blue: '#0066ff',
      magenta: '#cc00ff',
      cyan: '#00ffff',
      white: '#d0d0d0',
      lightBlack: '#808080',
      lightRed: '#ff0000',
      lightGreen: '#33ff00',
      lightYellow: '#ffff00',
      lightBlue: '#0066ff',
      lightMagenta: '#cc00ff',
      lightCyan: '#00ffff',
      lightWhite: '#ffffff'
    },

    // the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
    // if left empty, your system's login shell will be used by default
    shell: '',

    // for setting shell arguments (i.e. for using interactive shellArgs: ['-i'])
    // by default ['--login'] will be used
    shellArgs: ['--login'],

    // for environment variables
    env: {},

    // set to false for no bell
    bell: 'SOUND',

    // if true, selected text will automatically be copied to the clipboard
    copyOnSelect: true

    // URL to custom bell
    // bellSoundURL: 'http://example.com/bell.mp3',

    // for advanced config flags please refer to https://hyper.is/#cfg
  },

  // a list of plugins to fetch and install from npm
  // format: [@org/]project[#version]
  // examples:
  //   `hyperpower`
  //   `@company/project`
  //   `project#1.0.1`
  plugins: [
    "hyperfull",
    "hyperterm-alternatescroll",
    "hyper-statusline",
    "hypertheme",
    "an-old-hype",
    "hypercwd",
    "hyper-tabs-enhanced",
    "hyper-transparent-dynamic",
    "hyperterm-tabs",
    "hyper-autoprofile"
  ],

  // in development, you can create a directory under
  // `~/.hyper_plugins/local/` and include it here
  // to load it and avoid it being `npm install`ed
  localPlugins: [],
  autoProfile: {
    prompts: [{
        // 'MyHost:Documents me$ ' default MacOS bash prompt 
        pattern: '^(\\S+):(.*) ([a-z_][a-z0-9_\\-\\.]*[\\$]?)[\\$#]\\s*$',
        hostname: 1,
        path: 2,
        username: 3
      },
      {
        // 'me@MyHost:~$ ' default Linux bash prompt
        pattern: '^([a-z_][a-z0-9_\\-\\.]*[\\$]?)@(\\S+):([\\/~].*)[\\$#]\\s*$',
        username: 1,
        hostname: 2,
        path: 3
      }
    ],
    profiles: [{
        triggers: [
          'root@',
        ],
        backgroundColor: '#600'
      },
      {
        triggers: [
          '@wp-manager'
        ],
        backgroundColor: '#050'
      },
      {
        triggers: [
          '/project'
        ],
        backgroundColor: '#004'
      }
    ],
    stripAnsiColors: true, //default 
    debug: false 
  },
  themeSettings: {
    opacity: 0.5,
    style: 'yoda',
        tabActiveMarker: ' '
  },
}

Let me know if you need any help with the project at any point. I'm an experienced React dev and just getting started with Redux – but I love the idea of this project, so am keen to see it do well.

chabou commented 7 years ago

It doesn't explain this error but your autoProfile section should be under configkey:

module.exports = {
  config: {
    // default font size in pixels for all tabs
    fontSize: 18,

    // font family with optional fallbacks
    fontFamily: 'Hasklig, Menlo, "DejaVu Sans Mono", "Lucida Console", monospace',

    // terminal cursor background color and opacity (hex, rgb, hsl, hsv, hwb or cmyk)
    cursorColor: 'rgba(248,28,229,0.8)',

    // `BEAM` for |, `UNDERLINE` for _, `BLOCK` for █
    cursorShape: 'BLOCK',

    // color of the text
    foregroundColor: '#fff',

    // terminal background color
    backgroundColor: '#000',

    // border color (window, tabs)
    borderColor: '#333',

    // custom css to embed in the main window
    css: '',

    // custom css to embed in the terminal window
    termCSS: '',

    // set to `true` if you're using a Linux set up
    // that doesn't shows native menus
    // default: `false` on Linux, `true` on Windows (ignored on macOS)
    showHamburgerMenu: '',

    // set to `false` if you want to hide the minimize, maximize and close buttons
    // additionally, set to `'left'` if you want them on the left, like in Ubuntu
    // default: `true` on windows and Linux (ignored on macOS)
    showWindowControls: '',

    // custom padding (css format, i.e.: `top right bottom left`)
    padding: '12px 14px',

    // the full list. if you're going to provide the full color palette,
    // including the 6 x 6 color cubes and the grayscale map, just provide
    // an array here instead of a color map object
    colors: {
      black: '#000000',
      red: '#ff0000',
      green: '#33ff00',
      yellow: '#ffff00',
      blue: '#0066ff',
      magenta: '#cc00ff',
      cyan: '#00ffff',
      white: '#d0d0d0',
      lightBlack: '#808080',
      lightRed: '#ff0000',
      lightGreen: '#33ff00',
      lightYellow: '#ffff00',
      lightBlue: '#0066ff',
      lightMagenta: '#cc00ff',
      lightCyan: '#00ffff',
      lightWhite: '#ffffff'
    },

    // the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
    // if left empty, your system's login shell will be used by default
    shell: '',

    // for setting shell arguments (i.e. for using interactive shellArgs: ['-i'])
    // by default ['--login'] will be used
    shellArgs: ['--login'],

    // for environment variables
    env: {},

    // set to false for no bell
    bell: 'SOUND',

    // if true, selected text will automatically be copied to the clipboard
    copyOnSelect: true

    // URL to custom bell
    // bellSoundURL: 'http://example.com/bell.mp3',

    // for advanced config flags please refer to https://hyper.is/#cfg
    autoProfile: {
      prompts: [{
          // 'MyHost:Documents me$ ' default MacOS bash prompt 
          pattern: '^(\\S+):(.*) ([a-z_][a-z0-9_\\-\\.]*[\\$]?)[\\$#]\\s*$',
          hostname: 1,
          path: 2,
          username: 3
        },
        {
          // 'me@MyHost:~$ ' default Linux bash prompt
          pattern: '^([a-z_][a-z0-9_\\-\\.]*[\\$]?)@(\\S+):([\\/~].*)[\\$#]\\s*$',
          username: 1,
          hostname: 2,
          path: 3
        }
      ],
      profiles: [{
          triggers: [
            'root@',
          ],
          backgroundColor: '#600'
        },
        {
          triggers: [
            '@wp-manager'
          ],
          backgroundColor: '#050'
        },
        {
          triggers: [
            '/project'
          ],
          backgroundColor: '#004'
        }
      ],
      stripAnsiColors: true, //default 
      debug: false 
    },
  },

  // a list of plugins to fetch and install from npm
  // format: [@org/]project[#version]
  // examples:
  //   `hyperpower`
  //   `@company/project`
  //   `project#1.0.1`
  plugins: [
    "hyperfull",
    "hyperterm-alternatescroll",
    "hyper-statusline",
    "hypertheme",
    "an-old-hype",
    "hypercwd",
    "hyper-tabs-enhanced",
    "hyper-transparent-dynamic",
    "hyperterm-tabs",
    "hyper-autoprofile"
  ],

  // in development, you can create a directory under
  // `~/.hyper_plugins/local/` and include it here
  // to load it and avoid it being `npm install`ed
  localPlugins: [],
  themeSettings: {
    opacity: 0.5,
    style: 'yoda',
        tabActiveMarker: ' '
  },
}

I'll try to reproduce your error later

shankie-codes commented 7 years ago

D'oh! That was it. What a goof.

Thanks for your help, that sorted it.

chabou commented 7 years ago

But in your case, autoProfile config was ignored and shouldn't throw an error. I'll take a look an keep you in touch