New: Tooling changes for UI

This commit is contained in:
Qstick 2018-11-23 02:05:47 -05:00
parent 8430cb40ab
commit ac0d1c92c3
39 changed files with 8129 additions and 10650 deletions

View File

@ -115,7 +115,7 @@ jobs:
zip -r ../_packages/Radarr.${CIRCLE_BRANCH//\//-}.$BUILD_VERSION.$CIRCLE_BUILD_NUM.osx-app.zip *
- run:
name: "Creating Installer"
command: wine setup/inno/ISCC.exe setup/nzbdrone.iss && cp -r setup/Output/Radarr* _packages/
command: wine setup/inno/ISCC.exe setup/radarr.iss && cp -r setup/Output/Radarr* _packages/
- store_artifacts:
path: _packages
destination: artifacts

9
.esprintrc Normal file
View File

@ -0,0 +1,9 @@
{
"paths": [
"frontend/src/**/*.js"
],
"ignored": [
"**/node_modules/**/*"
],
"port": 5004
}

2
.gitignore vendored
View File

@ -125,8 +125,6 @@ _tests/
setup/Output/
*.~is
UI.Phantom/
# VS outout folders
bin
obj

1
.npmrc Normal file
View File

@ -0,0 +1 @@
save-prefix=""

1
.yarnrc Normal file
View File

@ -0,0 +1 @@
save-prefix ""

View File

@ -11,9 +11,9 @@ var outputFolderOsxApp = outputFolderOsx + "_app";
var testPackageFolder = "./_tests";
var testSearchPattern = "*.Test/bin/x86/Release";
var sourceFolder = "./src";
var solutionFile = sourceFolder + "/NzbDrone.sln";
var updateFolder = outputFolder + "/NzbDrone.Update";
var updateFolderMono = outputFolderMono + "/NzbDrone.Update";
var solutionFile = sourceFolder + "/Radarr.sln";
var updateFolder = outputFolder + "/Radarr.Update";
var updateFolderMono = outputFolderMono + "/Radarr.Update";
// Artifact variables
var artifactsFolder = "./_artifacts";
@ -136,8 +136,8 @@ Task("PackageMono").Does(() => {
DeleteFiles(outputFolderMono + "/sqlite3.*");
DeleteFiles(outputFolderMono + "/MediaInfo.*");
// Adding NzbDrone.Core.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Core/NzbDrone.Core.dll.config", outputFolderMono + "/NzbDrone.Core.dll.config");
// Adding Radarr.Core.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Core/Radarr.Core.dll.config", outputFolderMono + "/Radarr.Core.dll.config");
// Adding CurlSharp.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Common/CurlSharp.dll.config", outputFolderMono + "/CurlSharp.dll.config");
@ -148,11 +148,11 @@ Task("PackageMono").Does(() => {
MoveFile(outputFolderMono + "/Radarr.Console.exe.config", outputFolderMono + "/Radarr.exe.config");
MoveFile(outputFolderMono + "/Radarr.Console.exe.mdb", outputFolderMono + "/Radarr.exe.mdb");
// Remove NzbDrone.Windows.*
DeleteFiles(outputFolderMono + "/NzbDrone.Windows.*");
// Remove Radarr.Windows.*
DeleteFiles(outputFolderMono + "/Radarr.Windows.*");
// Adding NzbDrone.Mono to updatePackage
CopyFiles(outputFolderMono + "/NzbDrone.Mono.*", updateFolderMono);
// Adding Radarr.Mono to updatePackage
CopyFiles(outputFolderMono + "/Radarr.Mono.*", updateFolderMono);
});
Task("PackageOsx").Does(() => {
@ -236,8 +236,8 @@ Task("PackageTests").Does(() => {
// Clean
CleanFolder(testPackageFolder, true);
// Adding NzbDrone.Core.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Core/NzbDrone.Core.dll.config", testPackageFolder + "/NzbDrone.Core.dll.config");
// Adding Radarr.Core.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Core/Radarr.Core.dll.config", testPackageFolder + "/Radarr.Core.dll.config");
// Adding CurlSharp.dll.config (for dllmap)
CopyFile(sourceFolder + "/NzbDrone.Common/CurlSharp.dll.config", testPackageFolder + "/CurlSharp.dll.config");
@ -248,10 +248,10 @@ Task("PackageTests").Does(() => {
Task("CleanupWindowsPackage").Does(() => {
// Remove mono
DeleteFiles(outputFolder + "/NzbDrone.Mono.*");
DeleteFiles(outputFolder + "/Radarr.Mono.*");
// Adding NzbDrone.Windows to updatePackage
CopyFiles(outputFolder + "/NzbDrone.Windows.*", updateFolder);
CopyFiles(outputFolder + "/Radarr.Windows.*", updateFolder);
});
Task("Build")
@ -277,7 +277,7 @@ Task("ArtifactsWindows").Does(() => {
});
Task("ArtifactsWindowsInstaller").Does(() => {
InnoSetup("./setup/nzbdrone.iss", new InnoSetupSettings {
InnoSetup("./setup/radarr.iss", new InnoSetupSettings {
OutputDirectory = artifactsFolder,
ToolPath = "./setup/inno/ISCC.exe"
});

View File

@ -7,9 +7,9 @@ outputFolderOsxApp='./_output_osx_app'
testPackageFolder='./_tests/'
testSearchPattern='*.Test/bin/x86/Release'
sourceFolder='./src'
slnFile=$sourceFolder/NzbDrone.sln
updateFolder=$outputFolder/NzbDrone.Update
updateFolderMono=$outputFolderMono/NzbDrone.Update
slnFile=$sourceFolder/Radarr.sln
updateFolder=$outputFolder/Radarr.Update
updateFolderMono=$outputFolderMono/Radarr.Update
nuget='tools/nuget/nuget.exe';
CheckExitCode()
@ -88,9 +88,20 @@ BuildWithXbuild()
CheckExitCode msbuild /p:Configuration=Release /p:Platform=x86 /t:Build /p:AllowedReferenceRelatedFileExtensions=.pdb /maxcpucount:3 $slnFile
}
LintUI()
{
echo "ESLint"
CheckExitCode yarn eslint
echo "ESLint"
echo "Stylelint"
CheckExitCode yarn stylelint
echo "Stylelint"
}
Build()
{
echo "##teamcity[progressStart 'Build']"
echo "Start Build"
rm -rf $outputFolder
@ -109,18 +120,20 @@ Build()
echo "Removing Mono.Posix.dll"
rm $outputFolder/Mono.Posix.dll
echo "##teamcity[progressFinish 'Build']"
echo "Finish Build"
}
RunGulp()
{
echo "##teamcity[progressStart 'npm install']"
npm-cache install npm || CheckExitCode npm install
echo "##teamcity[progressFinish 'npm install']"
echo "Start yarn install"
yarn install
echo "Finish yarn install"
echo "##teamcity[progressStart 'Running gulp']"
CheckExitCode npm run build
echo "##teamcity[progressFinish 'Running gulp']"
LintUI
echo "Start Running gulp"
CheckExitCode yarn run build --production
echo "Finish Running gulp"
}
CreateMdbs()
@ -161,22 +174,22 @@ PackageMono()
rm -f $outputFolderMono/MediaInfo.*
echo "Adding NzbDrone.Core.dll.config (for dllmap)"
cp $sourceFolder/NzbDrone.Core/NzbDrone.Core.dll.config $outputFolderMono
cp $sourceFolder/NzbDrone.Core/Radarr.Core.dll.config $outputFolderMono
echo "Adding CurlSharp.dll.config (for dllmap)"
cp $sourceFolder/NzbDrone.Common/CurlSharp.dll.config $outputFolderMono
echo "Renaming NzbDrone.Console.exe to NzbDrone.exe"
echo "Renaming Radarr.Console.exe to Radarr.exe"
rm $outputFolderMono/Radarr.exe*
for file in $outputFolderMono/Radarr.Console.exe*; do
mv "$file" "${file//.Console/}"
done
echo "Removing NzbDrone.Windows"
rm $outputFolderMono/NzbDrone.Windows.*
echo "Removing Radarr.Windows"
rm $outputFolderMono/Radarr.Windows.*
echo "Adding NzbDrone.Mono to UpdatePackage"
cp $outputFolderMono/NzbDrone.Mono.* $updateFolderMono
echo "Adding Radarr.Mono to UpdatePackage"
cp $outputFolderMono/Radarr.Mono.* $updateFolderMono
echo "##teamcity[progressFinish 'Creating Mono Package']"
}
@ -236,8 +249,8 @@ PackageTests()
CleanFolder $testPackageFolder true
echo "Adding NzbDrone.Core.dll.config (for dllmap)"
cp $sourceFolder/NzbDrone.Core/NzbDrone.Core.dll.config $testPackageFolder
echo "Adding Radarr.Core.dll.config (for dllmap)"
cp $sourceFolder/NzbDrone.Core/Radarr.Core.dll.config $testPackageFolder
echo "Adding CurlSharp.dll.config (for dllmap)"
cp $sourceFolder/NzbDrone.Common/CurlSharp.dll.config $testPackageFolder
@ -250,11 +263,11 @@ PackageTests()
CleanupWindowsPackage()
{
echo "Removing NzbDrone.Mono"
rm -f $outputFolder/NzbDrone.Mono.*
echo "Removing Radarr.Mono"
rm -f $outputFolder/Radarr.Mono.*
echo "Adding NzbDrone.Windows to UpdatePackage"
cp $outputFolder/NzbDrone.Windows.* $updateFolder
echo "Adding Radarr.Windows to UpdatePackage"
cp $outputFolder/Radarr.Windows.* $updateFolder
}
# Use mono or .net depending on OS
@ -262,7 +275,7 @@ case "$(uname -s)" in
CYGWIN*|MINGW32*|MINGW64*|MSYS*)
# on windows, use dotnet
runtime="dotnet"
vsLoc=$(./vswhere.exe -property installationPath)
vsLoc=$(./tools/vswhere/vswhere.exe -property installationPath)
vsLoc=$(echo "/$vsLoc" | sed -e 's/\\/\//g' -e 's/://')
msBuild="$vsLoc$msBuild"
;;

View File

@ -209,7 +209,6 @@
"lines-around-comment": ["error", { "beforeBlockComment": true, "afterBlockComment": false }],
"max-depth": ["error", {"maximum": 5}],
"max-nested-callbacks": ["error", 4],
"max-params": ["error", 6],
"max-statements": "off",
"max-statements-per-line": ["error", { "max": 1 }],
"new-cap": ["error", {"capIsNewExceptions": ["$.Deferred", "DragDropContext", "DragLayer", "DragSource", "DropTarget"]}],

View File

@ -24,7 +24,7 @@
"ignoreAtRules": [
"/^add\\-mixin$/",
"/^define\\-mixin$/"
]
]
}
],
"at-rule-no-vendor-prefix": true,

View File

@ -14,6 +14,7 @@ module.exports = (ctx, configPath, options) => {
return Object.assign(acc, reload(vars));
}, {})
},
'postcss-color-function': {},
'postcss-nested': {},
autoprefixer: {
browsers: [

View File

@ -1,18 +0,0 @@
var gulp = require('gulp');
var runSequence = require('run-sequence');
require('./clean');
require('./less');
require('./handlebars');
require('./copy');
gulp.task('build', function() {
return runSequence('clean', [
'webpack',
'less',
'handlebars',
'copyHtml',
'copyContent',
'copyJs'
]);
});

View File

@ -1,8 +0,0 @@
var gulp = require('gulp');
var del = require('del');
var paths = require('./paths');
gulp.task('clean', function(cb) {
del([paths.dest.root], cb);
});

View File

@ -1,31 +0,0 @@
var gulp = require('gulp');
var print = require('gulp-print');
var cache = require('gulp-cached');
var livereload = require('gulp-livereload');
var paths = require('./paths.js');
gulp.task('copyJs', function () {
return gulp.src(
[
paths.src.root + 'polyfills.js',
paths.src.root + 'JsLibraries/handlebars.runtime.js'
])
.pipe(cache('copyJs'))
.pipe(print())
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});
gulp.task('copyHtml', function () {
return gulp.src(paths.src.html)
.pipe(cache('copyHtml'))
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});
gulp.task('copyContent', function () {
return gulp.src([paths.src.content + '**/*.*', '!**/*.less', '!**/*.css'])
.pipe(gulp.dest(paths.dest.content))
.pipe(livereload());
});

View File

@ -1,7 +0,0 @@
module.exports = {
onError : function(error) {
//If you want details of the error in the console
console.log(error.toString());
this.emit('end');
}
};

View File

@ -1,11 +0,0 @@
require('./watch.js');
require('./build.js');
require('./clean.js');
require('./jshint.js');
require('./handlebars.js');
require('./copy.js');
require('./less.js');
require('./stripBom.js');
require('./imageMin.js');
require('./webpack.js');
require('./start.js');

View File

@ -1,55 +0,0 @@
var gulp = require('gulp');
var handlebars = require('gulp-handlebars');
var declare = require('gulp-declare');
var concat = require('gulp-concat');
var wrap = require("gulp-wrap");
var livereload = require('gulp-livereload');
var path = require('path');
var streamqueue = require('streamqueue');
var stripbom = require('gulp-stripbom');
var paths = require('./paths.js');
gulp.task('handlebars', function() {
var coreStream = gulp.src([
paths.src.templates,
'!*/**/*Partial.*'
])
.pipe(stripbom({ showLog : false }))
.pipe(handlebars())
.pipe(declare({
namespace : 'T',
noRedeclare : true,
processName : function(filePath) {
filePath = path.relative(paths.src.root, filePath);
return filePath.replace(/\\/g, '/')
.toLocaleLowerCase()
.replace('template', '')
.replace('.js', '');
}
}));
var partialStream = gulp.src([paths.src.partials])
.pipe(stripbom({ showLog : false }))
.pipe(handlebars())
.pipe(wrap('Handlebars.template(<%= contents %>)'))
.pipe(wrap('Handlebars.registerPartial(<%= processPartialName(file.relative) %>, <%= contents %>)', {}, {
imports : {
processPartialName : function(fileName) {
return JSON.stringify(
path.basename(fileName, '.js')
);
}
}
}));
return streamqueue({ objectMode : true },
partialStream,
coreStream
).pipe(concat('templates.js'))
.pipe(gulp.dest(paths.dest.root))
.pipe(livereload());
});

View File

@ -1,15 +0,0 @@
var gulp = require('gulp');
var print = require('gulp-print');
var paths = require('./paths.js');
gulp.task('imageMin', function() {
var imagemin = require('gulp-imagemin');
return gulp.src(paths.src.images)
.pipe(imagemin({
progressive : false,
optimizationLevel : 4,
svgoPlugins : [{ removeViewBox : false }]
}))
.pipe(print())
.pipe(gulp.dest(paths.src.content + 'Images/'));
});

View File

@ -1,15 +0,0 @@
var gulp = require('gulp');
var jshint = require('gulp-jshint');
var stylish = require('jshint-stylish');
var cache = require('gulp-cached');
var paths = require('./paths.js');
gulp.task('jshint', function() {
return gulp.src([
paths.src.scripts,
paths.src.exclude.libs
])
.pipe(cache('jshint'))
.pipe(jshint())
.pipe(jshint.reporter(stylish));
});

View File

@ -1,54 +0,0 @@
var gulp = require('gulp');
var less = require('gulp-less');
var postcss = require('gulp-postcss');
var sourcemaps = require('gulp-sourcemaps');
var autoprefixer = require('autoprefixer-core');
var livereload = require('gulp-livereload');
var cleancss = require('gulp-clean-css');
var print = require('gulp-print');
var paths = require('./paths');
var errorHandler = require('./errorHandler');
gulp.task('less', function() {
var src = [
paths.src.content + 'bootstrap.less',
paths.src.content + 'theme.less',
paths.src.content + 'overrides.less',
paths.src.content + 'bootstrap.toggle-switch.css',
paths.src.content + 'fullcalendar.css',
paths.src.content + 'Messenger/messenger.css',
paths.src.content + 'Messenger/messenger.flat.css',
paths.src.root + 'Series/series.less',
paths.src.root + 'Activity/activity.less',
paths.src.root + 'AddSeries/addSeries.less',
paths.src.root + 'AddMovies/addMovies.less',
paths.src.root + 'Calendar/calendar.less',
paths.src.root + 'Cells/cells.less',
paths.src.root + 'ManualImport/manualimport.less',
paths.src.root + 'Settings/settings.less',
paths.src.root + 'System/Logs/logs.less',
paths.src.root + 'System/Update/update.less',
paths.src.root + 'System/Info/info.less',
paths.src.root + 'Movies/movies.less',
];
return gulp.src(src)
.pipe(print())
.pipe(sourcemaps.init())
.pipe(less({
dumpLineNumbers : 'false',
compress : false,
yuicompress : false,
ieCompat : true,
strictImports : true
}))
.pipe(postcss([ autoprefixer({ browsers: ['last 2 versions'] }) ]))
.pipe(cleancss())
.on('error', errorHandler.onError)
.pipe(sourcemaps.write(paths.dest.content))
.pipe(gulp.dest(paths.dest.content))
.pipe(livereload());
});

View File

@ -1,21 +0,0 @@
var paths = {
src : {
root : './src/UI/',
templates : './src/UI/**/*.hbs',
html : './src/UI/*.html',
partials : './src/UI/**/*Partial.hbs',
scripts : './src/UI/**/*.js',
less : ['./src/UI/**/*.less'],
content : './src/UI/Content/',
images : './src/UI/Content/Images/**/*',
exclude : {
libs : '!./src/UI/JsLibraries/**'
}
},
dest : {
root : './_output/UI/',
content : './_output/UI/Content/'
}
};
module.exports = paths;

View File

@ -1,112 +0,0 @@
// will download and run sonarr (server) in a non-windows enviroment
// you can use this if you don't care about the server code and just want to work
// with the web code.
var http = require('http');
var gulp = require('gulp');
var fs = require('fs');
var targz = require('tar.gz');
var del = require('del');
var print = require('gulp-print');
var spawn = require('child_process').spawn;
function download(url, dest, cb) {
console.log('Downloading ' + url + ' to ' + dest);
var file = fs.createWriteStream(dest);
var request = http.get(url, function (response) {
response.pipe(file);
file.on('finish', function () {
console.log('Download completed');
file.close(cb);
});
});
}
function getLatest(cb) {
var branch = 'develop';
process.argv.forEach(function (val) {
var branchMatch = /branch=([\S]*)/.exec(val);
if (branchMatch && branchMatch.length > 1) {
branch = branchMatch[1];
}
});
var url = 'http://services.sonarr.tv/v1/update/' + branch + '?os=osx';
console.log('Checking for latest version:', url);
http.get(url, function (res) {
var data = '';
res.on('data', function (chunk) {
data += chunk;
});
res.on('end', function () {
var updatePackage = JSON.parse(data).updatePackage;
console.log('Latest version available: ' + updatePackage.version + ' Release Date: ' + updatePackage.releaseDate);
cb(updatePackage);
});
}).on('error', function (e) {
console.log('problem with request: ' + e.message);
});
}
function extract(source, dest, cb) {
console.log('extracting download page to ' + dest);
new targz().extract(source, dest, function (err) {
if (err) {
console.log(err);
}
console.log('Update package extracted.');
cb();
});
}
gulp.task('getSonarr', function () {
//gulp.src('/Users/kayone/git/Sonarr/_start/2.0.0.3288/NzbDrone/*.*')
// .pipe(print())
// .pipe(gulp.dest('./_output
//return;
try {
fs.mkdirSync('./_start/');
} catch (e) {
if (e.code != 'EEXIST') {
throw e;
}
}
getLatest(function (package) {
var packagePath = "./_start/" + package.filename;
var dirName = "./_start/" + package.version;
download(package.url, packagePath, function () {
extract(packagePath, dirName, function () {
// clean old binaries
console.log('Cleaning old binaries');
del.sync(['./_output/*', '!./_output/UI/']);
console.log('copying binaries to target');
gulp.src(dirName + '/NzbDrone/*.*')
.pipe(gulp.dest('./_output/'));
});
});
});
});
gulp.task('startSonarr', function () {
var ls = spawn('mono', ['--debug', './_output/NzbDrone.exe']);
ls.stdout.on('data', function (data) {
process.stdout.write('' + data);
});
ls.stderr.on('data', function (data) {
process.stdout.write('' + data);
});
ls.on('close', function (code) {
console.log('child process exited with code ' + code);
});
});

View File

@ -1,21 +0,0 @@
var gulp = require('gulp');
var paths = require('./paths.js');
var stripbom = require('gulp-stripbom');
var stripBom = function (dest) {
gulp.src([paths.src.scripts, paths.src.exclude.libs])
.pipe(stripbom({ showLog: false }))
.pipe(gulp.dest(dest));
gulp.src(paths.src.less)
.pipe(stripbom({ showLog: false }))
.pipe(gulp.dest(dest));
gulp.src(paths.src.templates)
.pipe(stripbom({ showLog: false }))
.pipe(gulp.dest(dest));
};
gulp.task('stripBom', function () {
stripBom(paths.src.root);
});

View File

@ -1,20 +0,0 @@
var gulp = require('gulp');
var livereload = require('gulp-livereload');
var paths = require('./paths.js');
require('./jshint.js');
require('./handlebars.js');
require('./less.js');
require('./copy.js');
require('./webpack.js');
gulp.task('watch', ['jshint', 'handlebars', 'less', 'copyHtml', 'copyContent', 'copyJs'], function () {
livereload.listen();
gulp.start('webpackWatch');
gulp.watch([paths.src.scripts, paths.src.exclude.libs], ['jshint', 'copyJs']);
gulp.watch(paths.src.templates, ['handlebars']);
gulp.watch([paths.src.less, paths.src.exclude.libs], ['less']);
gulp.watch([paths.src.html], ['copyHtml']);
gulp.watch([paths.src.content + '**/*.*', '!**/*.less'], ['copyContent']);
});

View File

@ -1,13 +0,0 @@
var gulp = require('gulp');
var webpackStream = require('webpack-stream');
var livereload = require('gulp-livereload');
var webpackConfig = require('../webpack.config');
gulp.task('webpack', function() {
return gulp.src('main.js').pipe(webpackStream(webpackConfig)).pipe(gulp.dest(''));
});
gulp.task('webpackWatch', function() {
webpackConfig.watch = true;
return gulp.src('main.js').pipe(webpackStream(webpackConfig)).pipe(gulp.dest('')).pipe(livereload());
});

View File

@ -1 +1 @@
require('./gulp/gulpFile.js');
require('./frontend/gulp/gulpFile.js');

View File

@ -31,8 +31,8 @@ fi
export DYLD_FALLBACK_LIBRARY_PATH="$DYLD_FALLBACK_LIBRARY_PATH:$HOME/lib:/usr/local/lib:/lib:/usr/lib"
#mono version check
REQUIRED_MAJOR=3
REQUIRED_MINOR=10
REQUIRED_MAJOR=4
REQUIRED_MINOR=6
VERSION_TITLE="Cannot launch $APPNAME"
VERSION_MSG="$APPNAME requires Mono Runtime Environment(MRE) $REQUIRED_MAJOR.$REQUIRED_MINOR or later."

View File

@ -23,11 +23,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.0</string>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>xmmd</string>
<key>CFBundleVersion</key>
<string>2.0</string>
<string>1.0</string>
<key>NSAppleScriptEnabled</key>
<string>YES</string>
</dict>

10154
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,50 +1,115 @@
{
"name": "Radarr",
"version": "2.0.0",
"description": "Radarr",
"main": "main.js",
"name": "radarr",
"version": "1.0.0",
"description": "Radarr is a PVR for Usenet and BitTorrent users",
"scripts": {
"build": "gulp build",
"start": "gulp watch"
"start": "gulp watch",
"eslint": "esprint check",
"eslint-fix": "eslint start --fix",
"stylelint": "stylelint frontend/**/*.css --config frontend/.stylelintrc"
},
"repository": {
"type": "git",
"url": "git://github.com/Radarr/Radarr.git"
},
"author": "",
"repository": "https://github.com/Radarr/Radarr",
"author": "Team Radarr",
"license": "GPL-3.0",
"gitHead": "9ff7aa1bf7fe38c4c5bdb92f56c8ad556916ed67",
"readmeFilename": "readme.md",
"dependencies": {
"autoprefixer-core": "5.2.1",
"del": "1.2.0",
"gulp": "3.9.0",
"gulp-cached": "1.1.0",
"gulp-clean-css": "^3.0.4",
"gulp-concat": "2.6.0",
"@fortawesome/fontawesome-free": "5.3.1",
"@fortawesome/fontawesome-svg-core": "1.2.4",
"@fortawesome/free-regular-svg-icons": "5.3.1",
"@fortawesome/free-solid-svg-icons": "5.3.1",
"@fortawesome/react-fontawesome": "0.1.3",
"@sentry/browser": "4.0.3",
"autoprefixer": "9.1.5",
"babel-core": "6.26.3",
"babel-eslint": "9.0.0",
"babel-loader": "7.1.2",
"babel-plugin-transform-class-properties": "6.24.1",
"babel-preset-decorators-legacy": "1.0.0",
"babel-preset-es2015": "6.24.1",
"babel-preset-react": "6.24.1",
"babel-preset-stage-2": "6.24.1",
"classnames": "2.2.6",
"clipboard": "2.0.1",
"create-react-class": "15.6.3",
"css-loader": "0.28.9",
"del": "3.0.0",
"element-class": "0.2.2",
"esformatter": "0.10.0",
"eslint": "5.6.0",
"eslint-plugin-filenames": "1.3.2",
"eslint-plugin-react": "7.11.1",
"esprint": "0.4.0",
"extract-text-webpack-plugin": "3.0.2",
"file-loader": "1.1.6",
"filesize": "3.6.1",
"gulp": "3.9.1",
"gulp-cached": "1.1.1",
"gulp-clean-css": "3.10.0",
"gulp-concat": "2.6.1",
"gulp-declare": "0.3.0",
"gulp-handlebars": "3.0.1",
"gulp-jshint": "1.11.2",
"gulp-less": "3.0.3",
"gulp-livereload": "3.8.0",
"gulp-postcss": "6.0.0",
"gulp-print": "1.1.0",
"gulp-replace": "0.5.3",
"gulp-run": "1.6.8",
"gulp-sourcemaps": "1.5.2",
"gulp-livereload": "4.0.0",
"gulp-postcss": "8.0.0",
"gulp-print": "5.0.0",
"gulp-sourcemaps": "2.6.4",
"gulp-stripbom": "1.0.4",
"gulp-webpack": "1.5.0",
"gulp-wrap": "0.11.0",
"handlebars": "3.0.3",
"jshint-loader": "0.8.3",
"jshint-stylish": "2.0.1",
"npm": "^6.0.1",
"run-sequence": "1.1.1",
"streamqueue": "1.1.0",
"tar.gz": "0.1.1",
"url-search-params": "^0.6.1",
"webpack": "1.12.0",
"webpack-stream": "2.1.0",
"natives": "^1.1.3"
}
"gulp-util": "3.0.8",
"gulp-watch": "5.0.1",
"gulp-wrap": "0.14.0",
"history": "4.7.2",
"jdu": "1.0.0",
"jquery": "3.3.1",
"loader-utils": "^1.1.0",
"lodash": "4.17.11",
"mobile-detect": "1.4.3",
"moment": "2.22.2",
"mousetrap": "1.6.2",
"normalize.css": "8.0.1",
"postcss-color-function": "4.0.1",
"postcss-loader": "3.0.0",
"postcss-mixins": "6.2.0",
"postcss-nested": "4.1.0",
"postcss-simple-vars": "5.0.1",
"prop-types": "15.6.2",
"qs": "6.5.2",
"react": "16.6.3",
"react-addons-shallow-compare": "15.6.2",
"react-async-script": "1.0.0",
"react-autosuggest": "9.4.2",
"react-custom-scrollbars": "4.2.1",
"react-dnd": "5.0.0",
"react-dnd-html5-backend": "5.0.1",
"react-document-title": "2.0.3",
"react-dom": "16.6.3",
"react-google-recaptcha": "1.0.2",
"react-lazyload": "2.3.0",
"react-measure": "1.4.7",
"react-redux": "5.1.1",
"react-router-dom": "4.3.1",
"react-router-redux": "5.0.0-alpha.6",
"react-slider": "0.11.2",
"react-tabs": "2.3.0",
"react-tether": "1.0.1",
"react-text-truncate": "0.13.1",
"react-virtualized": "9.20.1",
"redux": "4.0.1",
"redux-actions": "2.6.4",
"redux-batched-actions": "0.4.0",
"redux-localstorage": "0.4.1",
"redux-thunk": "2.3.0",
"require-nocache": "1.0.0",
"reselect": "3.0.1",
"run-sequence": "2.2.1",
"signalr": "2.4.0",
"streamqueue": "1.1.2",
"style-loader": "0.19.1",
"stylelint": "9.5.0",
"stylelint-order": "1.0.0",
"tar.gz": "1.0.7",
"uglifyjs-webpack-plugin": "1.2.5",
"url-loader": "0.6.2",
"webpack": "3.10.0",
"webpack-stream": "^4.0.0"
},
"main": "index.js"
}

View File

@ -38,10 +38,10 @@ chmod +x $outputFolderOsxApp/Radarr.app/Contents/MacOS/Radarr2
mv $outputFolderOsxApp/Radarr.app/Contents/MacOS/Radarr2 $outputFolderOsxApp/Radarr.app/Contents/MacOS/Radarr >& error.log
if [ $runtime = "dotnet" ] ; then
./7za.exe a Radarr_Windows_$VERSION.zip ./Radarr_Windows_$VERSION/*
./7za.exe a -ttar -so Radarr_Mono_$VERSION.tar ./Radarr_Mono_$VERSION/* | ./7za.exe a -si Radarr_Mono_$VERSION.tar.gz
./7za.exe a -ttar -so Radarr_OSX_$VERSION.tar ./_output_osx/* | ./7za.exe a -si Radarr_OSX_$VERSION.tar.gz
./7za.exe a -ttar -so Radarr_OSX_App_$VERSION.tar ./_output_osx_app/* | ./7za.exe a -si Radarr_OSX_App_$VERSION.tar.gz
./tools/7zip/7za.exe a Radarr_Windows_$VERSION.zip ./Radarr_Windows_$VERSION/*
./tools/7zip/7za.exe a -ttar -so Radarr_Mono_$VERSION.tar ./Radarr_Mono_$VERSION/* | ./tools/7zip/7za.exe a -si Radarr_Mono_$VERSION.tar.gz
./tools/7zip/7za.exe a -ttar -so Radarr_OSX_$VERSION.tar ./_output_osx/* | ./tools/7zip/7za.exe a -si Radarr_OSX_$VERSION.tar.gz
./tools/7zip/7za.exe a -ttar -so Radarr_OSX_App_$VERSION.tar ./_output_osx_app/* | ./tools/7zip/7za.exe a -si Radarr_OSX_App_$VERSION.tar.gz
else
cp -r $outputFolder/ Radarr
zip -r Radarr.$BRANCH.$VERSION.windows.zip Radarr

View File

@ -1,3 +1,3 @@
#SET BUILD_NUMBER=1
#SET branch=develop
inno\ISCC.exe nzbdrone.iss
inno\ISCC.exe radarr.iss

View File

@ -6,7 +6,7 @@
#define AppURL "https://radarr.video/"
#define ForumsURL "https://github.com/Radarr/Radarr/issues"
#define AppExeName "Radarr.exe"
#define BuildNumber "2.0"
#define BuildNumber "1.0"
#define BuildVersion GetEnv('APPVEYOR_BUILD_VERSION')
#define BranchName StringChange(GetEnv('APPVEYOR_REPO_BRANCH'), "/", "-")

View File

@ -1,5 +1,4 @@
var path = require('path');
var stylish = require('jshint-stylish');
var webpack = require('webpack');
var uglifyJsPlugin = new webpack.optimize.UglifyJsPlugin();

7948
yarn.lock Normal file

File diff suppressed because it is too large Load Diff