Skip to content

Commit 54c5efb

Browse files
committed
Add script to generate package from bower
1 parent 6063787 commit 54c5efb

File tree

6 files changed

+107
-1
lines changed

6 files changed

+107
-1
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
bower_components/

New-PackageFromBower.psm1

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
function New-PackageFromBower ($name) {
2+
bower install $name
3+
$packageInfo = (Get-Content .\bower_components\$name\.bower.json) -join "`n" | ConvertFrom-Json
4+
$version = $packageInfo.version
5+
$allPaths = (bower list --paths --json) -join "`n" | ConvertFrom-Json
6+
$paths = @($allPaths.$name)
7+
$jsPaths = @($paths | ? { $_ -match '\.js$' })
8+
9+
if ($jsPaths.Count -eq 0) {
10+
$jsPaths = @(ls $paths *.js -Recurse)
11+
}
12+
if ($jsPaths.Count -gt 1) {
13+
Write-Warning 'Package contains multiple JS files, only the first will be listed in the package'
14+
}
15+
16+
$jsFile = $jsPaths[0]
17+
$fileName = Split-Path $jsFile -Leaf
18+
19+
mkdir $name
20+
21+
$versionedFolder = "$name\$($name)_$version"
22+
mkdir $versionedFolder
23+
24+
$filePaths = @($paths | ? { -not (Test-Path $_ -PathType Container) })
25+
if ($filePaths.Count -eq 0) {
26+
$jsPaths | % { cp $_.FullName $versionedFolder }
27+
} else {
28+
$filePaths | % { cp $_ $versionedFolder }
29+
}
30+
31+
$manifestFile = "$versionedFolder\$name.dnn"
32+
cp _template\library.dnn $manifestFile
33+
$changesFile = "$versionedFolder\CHANGES.htm"
34+
cp _template\CHANGES.htm $changesFile
35+
$licenseFile = "$versionedFolder\LICENSE.htm"
36+
cp _template\LICENSE.htm $licenseFile
37+
38+
ReplaceTokens $manifestFile $name $version $fileName
39+
ReplaceTokens $changesFile $name $version $fileName
40+
ReplaceTokens $licenseFile $name $version $fileName
41+
42+
notepad $manifestFile
43+
notepad $changesFile
44+
notepad $licenseFile
45+
46+
if (@(Get-Member -InputObject $packageInfo | ? { $_.Name -eq 'dependencies' }).Count -gt 0) {
47+
Write-Warning 'Package has dependencies'; Write-Warning $packageInfo.dependencies
48+
}
49+
}
50+
51+
function ReplaceTokens($file, $name, $version, $fileName) {
52+
(Get-Content $file) |
53+
% { $_ -replace '\[name\]', $name -replace '\[version\]', $version -replace '\[file\]', $fileName } |
54+
Set-Content $file
55+
}
56+
57+
Export-ModuleMember New-PackageFromBower

_template/CHANGES.htm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<ol>
2+
<li>
3+
<strong>[version]</strong>
4+
<ul><li></li></ul>
5+
</li>
6+
</ol>

_template/LICENSE.htm

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<p>[name] is licened under the <a href="">MIT License</a>.</p>

_template/library.dnn

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<dotnetnuke type="Package" version="5.0">
2+
<packages>
3+
<package name="[name]" type="JavaScript_Library" version="[version]">
4+
<friendlyName>[name]</friendlyName>
5+
<description></description>
6+
<owner>
7+
<name>Engage Software</name>
8+
<organization>Engage Software</organization>
9+
<url>http://www.engagesoftware.com</url>
10+
<email>support@engagesoftware.com</email>
11+
</owner>
12+
<license src="LICENSE.htm" />
13+
<releaseNotes src="CHANGES.htm" />
14+
<azureCompatible>true</azureCompatible>
15+
<dependencies>
16+
<!--
17+
<dependency type="managedPackage" version="1.0.0">jQuery</dependency>
18+
-->
19+
</dependencies>
20+
<components>
21+
<component type="JavaScript_Library">
22+
<javaScriptLibrary>
23+
<libraryName>[name]</libraryName>
24+
<fileName>[file]</fileName>
25+
<preferredScriptLocation>BodyBottom</preferredScriptLocation>
26+
<CDNPath></CDNPath>
27+
<objectName></objectName>
28+
</javaScriptLibrary>
29+
</component>
30+
<component type="JavaScriptFile">
31+
<jsfiles>
32+
<libraryFolderName>[name]</libraryFolderName>
33+
<jsfile>
34+
<name>[file]</name>
35+
</jsfile>
36+
</jsfiles>
37+
</component>
38+
</components>
39+
</package>
40+
</packages>
41+
</dotnetnuke>

jQuery.cookie/jQuery.cookie_1.4.1/jQuery.cookie.dnn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<releaseNotes src="CHANGES.htm" />
1414
<azureCompatible>true</azureCompatible>
1515
<dependencies>
16-
<dependency type="managedPackage" version="1.2.0">jQuery</dependency>
16+
<dependency type="managedPackage" version="1.2.0">jQuery</dependency>
1717
</dependencies>
1818
<components>
1919
<component type="JavaScript_Library">

0 commit comments

Comments
 (0)