var format = JSON.stringify;

var command = {
  command: 'compile',
  description: 'Compile contract source files',
  builder: {
    all: {
      type: "boolean",
      default: false
    },
    compiler: {
      type: "string",
      default: null
    },
    list: {
      type: "string",
    },
    help: {
      type: "boolean",
      default: "false"
    }
  },
  help: {
    usage: "truffle compile [--list <filter>] [--all] [--network <name>]",
    options: [
      {
        option: "--all",
        description: "Compile all contracts instead of only the contracts changed since last compile."
      },{
        option: "--network <name>",
        description:  "Specify the network to use, saving artifacts specific to that network. " +
          " Network name must exist in the\n                    configuration."
      },{
        option: "--list <filter>",
        description:  "List all recent stable releases from solc-bin.  If filter is specified then it will display only " +
          "that\n                    type of release or docker tags. The filter parameter must be one of the following: " +
          "prereleases,\n                    releases, latestRelease or docker."
      },
    ]
  },
  run: function (options, done) {
    var Config = require("truffle-config");
    var Contracts = require("truffle-workflow-compile");
    var CompilerSupplier = require("truffle-compile").CompilerSupplier;
    var supplier = new CompilerSupplier();

    var config = Config.detect(options);

    (config.list !== undefined)
      ? command.listVersions(supplier, config, done)
      : Contracts.compile(config, done);
  },

  listVersions: function(supplier, options, done){
    const log = options.logger.log;
    options.list = (options.list.length) ? options.list : "releases";

    // Docker tags
    if (options.list === 'docker'){
      return supplier
        .getDockerTags()
        .then(tags => {
          tags.push('See more at: hub.docker.com/r/ethereum/solc/tags/');
          log(format(tags, null, ' '));
          done();
        })
        .catch(done);
    }

    // Solcjs releases
    supplier
      .getReleases()
      .then(releases => {
        const shortener = options.all ? null : command.shortener;
        const list = format(releases[options.list], shortener, ' ');
        log(list);
        done();
      })
      .catch(done);
  },

  shortener: function(key, val){
    const defaultLength = 10;

    if (Array.isArray(val) && val.length > defaultLength){
      const length = val.length;
      const remaining = length - defaultLength;
      const more = '.. and ' + remaining + ' more. Use `--all` to see full list.';
      val.length = defaultLength;
      val.push(more);
    }

    return val;
  },
};

module.exports = command;

@@ -54,17 +54,17 @@
 nd: 
-'
+%22
 compile
-'
+%22
 ,%0A  
@@ -76,17 +76,17 @@
 iption: 
-'
+%22
 Compile 
@@ -106,17 +106,17 @@
 ce files
-'
+%22
 ,%0A  buil
@@ -277,25 +277,24 @@
 pe: %22string%22
-,
 %0A    %7D,%0A    
@@ -503,32 +503,42 @@
     description:
+%0A         
  %22Compile all co
@@ -604,32 +604,39 @@
 mpile.%22%0A      %7D,
+%0A      
 %7B%0A        option
@@ -677,16 +677,25 @@
 ription:
+%0A        
   %22Speci
@@ -852,16 +852,23 @@
       %7D,
+%0A      
 %7B%0A      
@@ -916,16 +916,25 @@
 ription:
+%0A        
   %22List 
@@ -1239,24 +1239,123 @@
 .%22%0A      %7D,%0A
+      %7B%0A        option: %22--quiet%22,%0A        description: %22Suppress all compilation output.%22%0A      %7D%0A
     %5D%0A  %7D,%0A 
@@ -1368,17 +1368,16 @@
 function
- 
 (options
@@ -1649,17 +1649,16 @@
 );%0A%0A    
-(
 config.l
@@ -1674,17 +1674,16 @@
 ndefined
-)
 %0A      ?
@@ -1824,16 +1824,17 @@
 s, done)
+ 
 %7B%0A    co
@@ -1882,17 +1882,16 @@
 .list = 
-(
 options.
@@ -1901,17 +1901,16 @@
 t.length
-)
  ? optio
@@ -1980,17 +1980,18 @@
 === 
-'
+%22
 docker
-')
+%22) 
 %7B%0A  
@@ -2079,17 +2079,17 @@
 gs.push(
-'
+%22
 See more
@@ -2129,17 +2129,17 @@
 lc/tags/
-'
+%22
 );%0A     
@@ -2166,19 +2166,19 @@
 , null, 
-' '
+%22 %22
 ));%0A    
@@ -2447,11 +2447,11 @@
 er, 
-' '
+%22 %22
 );%0A 
@@ -2550,16 +2550,17 @@
 ey, val)
+ 
 %7B%0A    co
@@ -2641,16 +2641,17 @@
 tLength)
+ 
 %7B%0A      
@@ -2747,18 +2747,26 @@
 re =
- '
+%0A        %22
 .. and 
-'
+%22
  + r
@@ -2776,17 +2776,17 @@
 ining + 
-'
+%22
  more. U
@@ -2817,9 +2817,9 @@
 ist.
-'
+%22
 ;%0A  
@@ -2898,17 +2898,16 @@
 val;%0A  %7D
-,
 %0A%7D;%0A%0Amod

Add 'quiet' option to the help for compile command