<commit_before>/* jshint node: true */

module.exports = function(grunt) {
  "use strict";

  // Project configuration.
  grunt.initConfig({

    // Metadata.
    pkg: grunt.file.readJSON('package.json'),
    banner: '/**\n' +
              '* TODC Bootstrap v<%= pkg.version %> by todc\n' +
              '* Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
              '* Licensed under <%= _.pluck(pkg.licenses, "url").join(", ") %>.\n' +
              '*/\n',
    jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n',

    // Bootstrap variables
    bootstrapDir: 'bootstrap',
    bootstrapVersion: 'v3.0.0',

    // Task configuration.
    clean: {
      dist: ['dist']
    },

    // jshint: {
    //   options: {
    //     jshintrc: 'js/.jshintrc'
    //   },
    //   gruntfile: {
    //     src: 'Gruntfile.js'
    //   },
    //   src: {
    //     src: ['js/*.js']
    //   },
    //   test: {
    //     src: ['js/tests/unit/*.js']
    //   }
    // },

    // concat: {
    //   options: {
    //     banner: '<%= banner %><%= jqueryCheck %>',
    //     stripBanners: false
    //   },
    //   bootstrap: {
    //     src: [
    //       'js/transition.js',
    //       'js/alert.js',
    //       'js/button.js',
    //       'js/carousel.js',
    //       'js/collapse.js',
    //       'js/dropdown.js',
    //       'js/modal.js',
    //       'js/tooltip.js',
    //       'js/popover.js',
    //       'js/scrollspy.js',
    //       'js/tab.js',
    //       'js/affix.js'
    //     ],
    //     dest: 'dist/js/<%= pkg.name %>.js'
    //   }
    // },

    // uglify: {
    //   options: {
    //     banner: '<%= banner %>'
    //   },
    //   bootstrap: {
    //     src: ['<%= concat.bootstrap.dest %>'],
    //     dest: 'dist/js/<%= pkg.name %>.min.js'
    //   }
    // },

    recess: {
      options: {
        compile: true
      },
      bootstrap: {
        src: ['less/todc-bootstrap.less'],
        dest: 'dist/css/<%= pkg.name %>.css'
      },
      min: {
        options: {
          compress: true
        },
        src: ['less/todc-bootstrap.less'],
        dest: 'dist/css/<%= pkg.name %>.min.css'
      // },
      // theme: {
      //   src: ['less/theme.less'],
      //   dest: 'dist/css/<%= pkg.name %>-theme.css'
      // },
      // theme_min: {
      //   options: {
      //     compress: true
      //   },
      //   src: ['less/theme.less'],
      //   dest: 'dist/css/<%= pkg.name %>-theme.min.css'
      }
    },

    // TODO: Need to either copy the select2.min.js or the jshint and concat tasks
    copy: {
      images: {
        expand: true,
        src: ["img/*"],
        dest: 'dist/'
      }
    },

    // qunit: {
    //   options: {
    //     inject: 'js/tests/unit/phantom.js'
    //   },
    //   files: ['js/tests/*.html']
    // },

    // connect: {
    //   server: {
    //     options: {
    //       port: 3000,
    //       base: '.'
    //     }
    //   }
    // },

    jekyll: {
      docs: {}
    },

    validation: {
      options: {
        reset: true
      },
      files: {
        src: ["_gh_pages/**/*.html"]
      }
    },

    watch: {
      // src: {
      //   files: '<%= jshint.src.src %>',
      //   tasks: ['jshint:src', 'qunit']
      // },
      // test: {
      //   files: '<%= jshint.test.src %>',
      //   tasks: ['jshint:test', 'qunit']
      // },
      recess: {
        files: 'less/*.less',
        tasks: ['recess']
      }
    }

    // checkout-bootstrap task
    shell: {
      gitclone: {
        command: 'git clone <%= pkg.repository.url %> <%= bootstrapDir %>',
        options: {
          stdout: true
        }
      },
      gitcheckout: {
        command: 'git checkout tags/<%= bootstrapVersion %>',
        options: {
          stdout: true,
          execOptions: {
            cwd: '<%= bootstrapDir %>'
          }
        }
      }
    }
  });


  // These plugins provide necessary tasks.
  grunt.loadNpmTasks('grunt-contrib-clean');
  // grunt.loadNpmTasks('grunt-contrib-concat');
  // grunt.loadNpmTasks('grunt-contrib-connect');
  grunt.loadNpmTasks('grunt-contrib-copy');
  // grunt.loadNpmTasks('grunt-contrib-jshint');
  // grunt.loadNpmTasks('grunt-contrib-qunit');
  // grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-html-validation');
  grunt.loadNpmTasks('grunt-jekyll');
  grunt.loadNpmTasks('grunt-recess');
  grunt.loadNpmTasks('grunt-shell');
  // grunt.loadNpmTasks('browserstack-runner');

  // Clone bootstrap and checkout the appropriate tag
  grunt.registerTask('checkout-bootstrap', ['shell']);

  // Docs HTML validation task
  grunt.registerTask('validate-html', ['jekyll', 'validation']);

  // // Test task.
  // var testSubtasks = ['dist-css', 'jshint', 'qunit', 'validate-html'];
  // // Only run BrowserStack tests under Travis<commit_msg>update comment<commit_after>/* jshint node: true */

module.exports = function(grunt) {
  "use strict";

  // Project configuration.
  grunt.initConfig({

    // Metadata.
    pkg: grunt.file.readJSON('package.json'),
    banner: '/**\n' +
              '* TODC Bootstrap v<%= pkg.version %> by todc\n' +
              '* Copyright <%= grunt.template.today("yyyy") %> <%= pkg.author %>\n' +
              '* Licensed under <%= _.pluck(pkg.licenses, "url").join(", ") %>.\n' +
              '*/\n',
    jqueryCheck: 'if (!jQuery) { throw new Error(\"Bootstrap requires jQuery\") }\n\n',

    // Bootstrap variables
    bootstrapDir: 'bootstrap',
    bootstrapVersion: 'v3.0.0',

    // Task configuration.
    clean: {
      dist: ['dist']
    },

    // jshint: {
    //   options: {
    //     jshintrc: 'js/.jshintrc'
    //   },
    //   gruntfile: {
    //     src: 'Gruntfile.js'
    //   },
    //   src: {
    //     src: ['js/*.js']
    //   },
    //   test: {
    //     src: ['js/tests/unit/*.js']
    //   }
    // },

    // concat: {
    //   options: {
    //     banner: '<%= banner %><%= jqueryCheck %>',
    //     stripBanners: false
    //   },
    //   bootstrap: {
    //     src: [
    //       'js/transition.js',
    //       'js/alert.js',
    //       'js/button.js',
    //       'js/carousel.js',
    //       'js/collapse.js',
    //       'js/dropdown.js',
    //       'js/modal.js',
    //       'js/tooltip.js',
    //       'js/popover.js',
    //       'js/scrollspy.js',
    //       'js/tab.js',
    //       'js/affix.js'
    //     ],
    //     dest: 'dist/js/<%= pkg.name %>.js'
    //   }
    // },

    // uglify: {
    //   options: {
    //     banner: '<%= banner %>'
    //   },
    //   bootstrap: {
    //     src: ['<%= concat.bootstrap.dest %>'],
    //     dest: 'dist/js/<%= pkg.name %>.min.js'
    //   }
    // },

    recess: {
      options: {
        compile: true
      },
      bootstrap: {
        src: ['less/todc-bootstrap.less'],
        dest: 'dist/css/<%= pkg.name %>.css'
      },
      min: {
        options: {
          compress: true
        },
        src: ['less/todc-bootstrap.less'],
        dest: 'dist/css/<%= pkg.name %>.min.css'
      // },
      // theme: {
      //   src: ['less/theme.less'],
      //   dest: 'dist/css/<%= pkg.name %>-theme.css'
      // },
      // theme_min: {
      //   options: {
      //     compress: true
      //   },
      //   src: ['less/theme.less'],
      //   dest: 'dist/css/<%= pkg.name %>-theme.min.css'
      }
    },

    // TODO: Need to either copy the select2.min.js or the jshint and concat tasks
    copy: {
      images: {
        expand: true,
        src: ["img/*"],
        dest: 'dist/'
      }
    },

    // qunit: {
    //   options: {
    //     inject: 'js/tests/unit/phantom.js'
    //   },
    //   files: ['js/tests/*.html']
    // },

    // connect: {
    //   server: {
    //     options: {
    //       port: 3000,
    //       base: '.'
    //     }
    //   }
    // },

    jekyll: {
      docs: {}
    },

    validation: {
      options: {
        reset: true
      },
      files: {
        src: ["_gh_pages/**/*.html"]
      }
    },

    watch: {
      // src: {
      //   files: '<%= jshint.src.src %>',
      //   tasks: ['jshint:src', 'qunit']
      // },
      // test: {
      //   files: '<%= jshint.test.src %>',
      //   tasks: ['jshint:test', 'qunit']
      // },
      recess: {
        files: 'less/*.less',
        tasks: ['recess']
      }
    }

    // checkout-bootstrap task
    shell: {
      gitclone: {
        command: 'git clone <%= pkg.repository.url %> <%= bootstrapDir %>',
        options: {
          stdout: true
        }
      },
      gitcheckout: {
        command: 'git checkout tags/<%= bootstrapVersion %>',
        options: {
          stdout: true,
          execOptions: {
            cwd: '<%= bootstrapDir %>'
          }
        }
      }
    }
  });


  // These plugins provide necessary tasks.
  grunt.loadNpmTasks('grunt-contrib-clean');
  // grunt.loadNpmTasks('grunt-contrib-concat');
  // grunt.loadNpmTasks('grunt-contrib-connect');
  grunt.loadNpmTasks('grunt-contrib-copy');
  // grunt.loadNpmTasks('grunt-contrib-jshint');
  // grunt.loadNpmTasks('grunt-contrib-qunit');
  // grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-html-validation');
  grunt.loadNpmTasks('grunt-jekyll');
  grunt.loadNpmTasks('grunt-recess');
  grunt.loadNpmTasks('grunt-shell');
  // grunt.loadNpmTasks('browserstack-runner');

  // Clone bootstrap and checkout the appropriate tag task.
  grunt.registerTask('checkout-bootstrap', ['shell']);

  // Docs HTML validation task
  grunt.registerTask('validate-html', ['jekyll', 'validation']);

  // // Test task.
  // var testSubtasks = ['dist-css', 'jshint', 'qunit', 'validate-html'];
  // // Only run BrowserStack tests under Travis
{'fraction_non_alphanumeric': 0.20576006490213974, 'fraction_numerical': 0.0016225534935604908, 'mean_word_length': 1.4729187562688064, 'pattern_counts': {'":': 0, '<': 43, '<?xml version=': 0, '>': 43, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4457697', 'n_tokens_mistral': 3594, 'n_tokens_neox': 3407, 'n_words': 543}