    var lutdir = getDirectory("startup")+"luts"+File.separator;
    var luts = getLutMenu();
    var lCmds = newMenu("LUT Menu Tool", luts);
    
    macro "LUT Menu Tool - C037T0b11LT6b09UTcb09T" {
         cmd = getArgument();
  	  if (cmd!="-") run(cmd);
    }
    
    function getLutMenu() {
        list = getLutList();
        menu = newArray(16+list.length);
        menu[0] = "Invert LUT"; menu[1] = "Apply LUT"; menu[2] = "-";
        menu[3] = "Fire"; menu[4] = "Grays"; menu[5] = "Ice";
        menu[6] = "Spectrum"; menu[7] = "3-3-2 RGB"; menu[8] = "Red";
        menu[9] = "Green"; menu[10] = "Blue"; menu[11] = "Cyan";
        menu[12] = "Magenta"; menu[13] = "Yellow"; menu[14] = "Red/Green";
        menu[15] = "-";
        for (i=0; i<list.length; i++)
             menu[i+16] = list[i];
        return menu;
    }

    function getLutList() {
        lutdir = getDirectory("startup")+"luts"+File.separator;
        list = newArray("No LUTs in /ImageJ/luts");
        if (!File.exists(lutdir))
             return list;
        rawlist = getFileList(lutdir);
        if (rawlist.length==0)
             return list;
        count = 0;
        for (i=0; i< rawlist.length; i++)
            if (endsWith(rawlist[i], ".lut")) count++;
        if (count==0)
            return list;
        list = newArray(count);
        index = 0;
        for (i=0; i< rawlist.length; i++) {
            if (endsWith(rawlist[i], ".lut"))
                list[index++] = substring(rawlist[i], 0, lengthOf(rawlist[i])-4);
        }
        return list;
  }

