commit:     09e634d4a86194144abc1e639ee02ccd04a57ab4
Author:     ArsenShnurkov <Arsen.Shnurkov <AT> gmail <DOT> com>
AuthorDate: Sun Dec 27 11:26:42 2015 +0000
Commit:     Heather Cynede <cynede <AT> gentoo <DOT> org>
CommitDate: Sun Dec 27 11:26:42 2015 +0000
URL:        https://gitweb.gentoo.org/proj/dotnet.git/commit/?id=09e634d4

draft ebuild for X.PagedList

 .../X-PagedList-1.24.0.23549-r201512120.ebuild     | 159 +++++++++++++++++++++
 .../X-PagedList/files/X.PagedList.Mvc.csproj.patch |  79 ++++++++++
 .../X-PagedList/files/X.PagedList.csproj.patch     |  69 +++++++++
 dev-dotnet/X-PagedList/files/X.PagedList.nuspec    |  15 ++
 dev-dotnet/X-PagedList/metadata.xml                |  22 +++
 eclass/nupkg.eclass                                |  30 ++++
 6 files changed, 374 insertions(+)

diff --git a/dev-dotnet/X-PagedList/X-PagedList-1.24.0.23549-r201512120.ebuild 
b/dev-dotnet/X-PagedList/X-PagedList-1.24.0.23549-r201512120.ebuild
new file mode 100644
index 0000000..67da841
--- /dev/null
+++ b/dev-dotnet/X-PagedList/X-PagedList-1.24.0.23549-r201512120.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit versionator dotnet nupkg
+
+HOMEPAGE="https://github.com/kpi-ua/X.PagedList/";
+DESCRIPTION="Nugget for easily paging through any IEnumerable/IQueryable in 
Asp.Net MVC"
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="net45 +gac +nupkg +pkg-config debug developer"
+USE_DOTNET="net45"
+
+COMMON_DEPEND=">=dev-lang/mono-4.0.2.5
+"
+
+RDEPEND="${COMMON_DEPEND}
+"
+
+DEPEND="${COMMON_DEPEND}
+       virtual/pkgconfig
+"
+
+NAME="X.PagedList"
+REPOSITORY="https://github.com/ArsenShnurkov/${NAME}";
+EGIT_BRANCH="master"
+LICENSE_URL="${REPOSITORY}/blob/${EGIT_BRANCH}/LICENSE"
+ICONMETA="http://uxrepo.com/static/icon-sets/iconic/svg/list.svg";
+ICON_URL="https://github.com/ArsenShnurkov/X.PagedList/blob/switching-from-pcl/misc/list.svg";
+
+EGIT_COMMIT="48bc7da1bc3b6b294c69796bd9573e670edd3c64"
+SRC_URI="${REPOSITORY}/archive/${EGIT_BRANCH}/${EGIT_COMMIT}.zip -> ${PF}.zip
+       mirror://gentoo/mono.snk.bz2"
+#S="${WORKDIR}/${NAME}-${EGIT_COMMIT}"
+S="${WORKDIR}/${NAME}-${EGIT_BRANCH}"
+
+METAFILETOBUILD=./src/X.PagedList.sln
+#OUTPUT_DIR=
+
+# there is an original file exists: ./src/X.PagedList.Mvc/PagedList.Mvc.nuspec
+NUSPEC_FILE_NAME=X.PagedList.nuspec
+#NUSPEC_VERSION="${PVR//-r/.}"
+NUSPEC_VERSION=$(get_version_component_range 1-3)"${PR//r/.}"
+
+# rm -rf /var/tmp/portage/dev-dotnet/X-PagedList-1.24.0.23549-r201512120
+# emerge =X-PagedList-1.24.0.23549-r201512120
+# leafpad 
/var/tmp/portage/dev-dotnet/X-PagedList-1.24.0.23549-r201512120/temp/build.log &
+
+src_unpack()
+{
+       default
+       enuget_download_rogue_binary "Microsoft.Web.Infrastructure" "1.0.0.0"
+       enuget_download_rogue_binary "Microsoft.AspNet.WebPages" "3.2.3"
+       enuget_download_rogue_binary "Microsoft.AspNet.Razor" "3.2.3"
+       enuget_download_rogue_binary "Microsoft.AspNet.Mvc" "5.2.3"
+}
+
+src_prepare() {
+       einfo "patching project files"
+       epatch "${FILESDIR}/X.PagedList.csproj.patch"
+       epatch "${FILESDIR}/X.PagedList.Mvc.csproj.patch"
+
+       # no restoring for this particular project for now, see src_unpack() 
above instead
+       # einfo "restoring packages"
+       # enuget_restore -Verbosity detailed -SolutionDirectory "${S}" 
"./src/X.PagedList/packages.config"
+       # enuget_restore "./src/X.PagedList.Mvc/X.PagedList.Mvc.csproj"
+       # enuget_restore -Verbosity detailed -SolutionDirectory "${S}" 
"./src/X.PagedList.Mvc/packages.config"
+
+       einfo "preparing nuspec"
+       cp "${FILESDIR}/${NUSPEC_FILE_NAME}" "${S}/${NUSPEC_FILE_NAME}" || die
+       patch_nuspec_file "${S}/${NUSPEC_FILE_NAME}"
+}
+
+src_configure() {
+       :;
+}
+
+src_compile() {
+       exbuild /p:SignAssembly=true 
"/p:AssemblyOriginatorKeyFile=${WORKDIR}/mono.snk" 
"./src/X.PagedList/X.PagedList.csproj"
+       exbuild /p:SignAssembly=true 
"/p:AssemblyOriginatorKeyFile=${WORKDIR}/mono.snk" 
"./src/X.PagedList.Mvc/X.PagedList.Mvc.csproj"
+
+       # run nuget_pack
+       einfo "setting .nupkg version to ${NUSPEC_VERSION}"
+       enuspec -Prop "version=${NUSPEC_VERSION}" "${S}/${NUSPEC_FILE_NAME}"
+}
+
+src_install() {
+       enupkg "${WORKDIR}/${NAME}.${NUSPEC_VERSION}.nupkg"
+
+       egacinstall "src/X.PagedList/bin/${DIR}/X.PagedList.dll"
+       egacinstall "src/X.PagedList.Mvc/bin/${DIR}/X.PagedList.Mvc.dll"
+
+       install_pc_file
+}
+
+patch_nuspec_file()
+{
+       if use nupkg; then
+               if use debug; then
+                       DIR="Debug"
+FILES_STRING=`cat <<-EOF || die "${DIR} files at patch_nuspec_file()"
+       <files> <!-- https://docs.nuget.org/create/nuspec-reference -->
+               <file src="src/X.PagedList/bin/${DIR}/X.PagedList.dll" 
target="lib\net45\" />
+               <file src="src/X.PagedList.Mvc/bin/${DIR}/X.PagedList.Mvc.dll" 
target="lib\net45\" />
+               <file src="src/X.PagedList/bin/${DIR}/X.PagedList.dll.mdb" 
target="lib\net45\" />
+               <file 
src="src/X.PagedList.Mvc/bin/${DIR}/X.PagedList.Mvc.dll.mdb" 
target="lib\net45\" />
+       </files>
+EOF
+`
+               else
+                       DIR="Release"
+FILES_STRING=`cat <<-EOF || die "${DIR} files at patch_nuspec_file()"
+       <files> <!-- https://docs.nuget.org/create/nuspec-reference -->
+               <file src="src/X.PagedList/bin/${DIR}/X.PagedList.dll" 
target="lib\net45\" />
+               <file src="src/X.PagedList.Mvc/bin/${DIR}/X.PagedList.Mvc.dll" 
target="lib\net45\" />
+       </files>
+EOF
+`
+               fi
+
+               einfo ${FILES_STRING}
+               replace "</package>" "${FILES_STRING}</package>" -- $1 || die 
"replace at patch_nuspec_file()"
+       fi
+}
+
+PC_FILE_NAME=${PN}
+
+install_pc_file()
+{
+       if use pkg-config; then
+               dodir /usr/$(get_libdir)/pkgconfig
+               ebegin "Installing ${PC_FILE_NAME}.pc file"
+               sed \
+                       -e "s:@LIBDIR@:$(get_libdir):" \
+                       -e "s:@PACKAGENAME@:${PC_FILE_NAME}:" \
+                       -e "s:@DESCRIPTION@:${DESCRIPTION}:" \
+                       -e "s:@VERSION@:${PV}:" \
+                       -e 
's*@LIBS@*-r:${libdir}'"/mono/${PC_FILE_NAME}/X.PagedList.dll:"'${libdir}'"/mono/${PC_FILE_NAME}/X.PagedList.Mvc.dll"'*'
 \
+                       <<\EOF 
>"${D}/usr/$(get_libdir)/pkgconfig/${PC_FILE_NAME}.pc" || die
+prefix=${pcfiledir}/../..
+exec_prefix=${prefix}
+libdir=${exec_prefix}/@LIBDIR@
+
+Name: @PACKAGENAME@
+Description: @DESCRIPTION@
+Version: @VERSION@
+Libs: @LIBS@
+EOF
+# Package exported to: 
/var/tmp/portage/dev-dotnet/Open-NAT-1.0.0-r201510290/image//usr/lib64/mono/Open-NAT/Open.Nat.dll
 -> ../gac/Open.Nat/1.0.0.0__0738eb9f132ed756/Open.Nat.dll
+# Installed Open.Nat/bin/Release/Open.Nat.dll into the gac 
(/var/tmp/portage/dev-dotnet/Open-NAT-1.0.0-r201510290/image//usr/lib64/mono/gac)
+
+               einfo PKG_CONFIG_PATH="${D}/usr/$(get_libdir)/pkgconfig/" 
pkg-config --exists "${PC_FILE_NAME}"
+               PKG_CONFIG_PATH="${D}/usr/$(get_libdir)/pkgconfig/" pkg-config 
--exists "${PC_FILE_NAME}" || die ".pc file failed to validate."
+               eend $?
+       fi
+}

diff --git a/dev-dotnet/X-PagedList/files/X.PagedList.Mvc.csproj.patch 
b/dev-dotnet/X-PagedList/files/X.PagedList.Mvc.csproj.patch
new file mode 100644
index 0000000..b98f034
--- /dev/null
+++ b/dev-dotnet/X-PagedList/files/X.PagedList.Mvc.csproj.patch
@@ -0,0 +1,79 @@
+diff --git a/src/X.PagedList.Mvc/X.PagedList.Mvc.csproj 
b/src/X.PagedList.Mvc/X.PagedList.Mvc.csproj
+index 1f6dc03..9ab0dc1 100644
+--- a/src/X.PagedList.Mvc/X.PagedList.Mvc.csproj
++++ b/src/X.PagedList.Mvc/X.PagedList.Mvc.csproj
+@@ -3,8 +3,6 @@
+   <PropertyGroup>
+     <Configuration Condition=" '$(Configuration)' == '' 
">Debug</Configuration>
+     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+-    <ProductVersion>8.0.30703</ProductVersion>
+-    <SchemaVersion>2.0</SchemaVersion>
+     <ProjectGuid>{3E8629F8-D927-4D5F-A351-47DDE2AE37D1}</ProjectGuid>
+     <OutputType>Library</OutputType>
+     <AppDesignerFolder>Properties</AppDesignerFolder>
+@@ -46,36 +44,29 @@
+     
<AssemblyOriginatorKeyFile>PublicPrivateKeyFile.snk</AssemblyOriginatorKeyFile>
+   </PropertyGroup>
+   <ItemGroup>
+-    <Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+-      <Private>True</Private>
+-      
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
+-    </Reference>
+     <Reference Include="System" />
+     <Reference Include="System.Core" />
+     <Reference Include="System.Web" />
+-    <Reference Include="System.Web.Helpers, Version=3.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+-      
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
+-      <Private>True</Private>
++    <Reference Include="System.Web.Razor">
++      
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
+     </Reference>
+-    <Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+-      
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
+-      <Private>True</Private>
++    <Reference Include="Microsoft.Web.Infrastructure">
++      
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
+     </Reference>
+-    <Reference Include="System.Web.Razor, Version=3.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
+-      
<HintPath>..\packages\Microsoft.AspNet.Razor.3.2.3\lib\net45\System.Web.Razor.dll</HintPath>
+-      <Private>True</Private>
++    <Reference Include="System.Web.Helpers">
++      
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.Helpers.dll</HintPath>
+     </Reference>
+-    <Reference Include="System.Web.WebPages, Version=3.0.0.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
++    <Reference Include="System.Web.WebPages">
+       
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.dll</HintPath>
+-      <Private>True</Private>
+     </Reference>
+-    <Reference Include="System.Web.WebPages.Deployment, Version=3.0.0.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
++    <Reference Include="System.Web.WebPages.Deployment">
+       
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Deployment.dll</HintPath>
+-      <Private>True</Private>
+     </Reference>
+-    <Reference Include="System.Web.WebPages.Razor, Version=3.0.0.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
++    <Reference Include="System.Web.WebPages.Razor">
+       
<HintPath>..\packages\Microsoft.AspNet.WebPages.3.2.3\lib\net45\System.Web.WebPages.Razor.dll</HintPath>
+-      <Private>True</Private>
++    </Reference>
++    <Reference Include="System.Web.Mvc">
++      
<HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
+     </Reference>
+   </ItemGroup>
+   <ItemGroup>
+@@ -87,14 +78,14 @@
+   </ItemGroup>
+   <ItemGroup>
+     <None Include="app.config" />
+-    <None Include="packages.config" />
+     <None Include="PagedList.Mvc.nuspec" />
+     <None Include="PublicKeyFile.snk" />
+     <None Include="PublicPrivateKeyFile.snk" />
++    <None Include="packages.config" />
+   </ItemGroup>
+   <ItemGroup>
+     <ProjectReference Include="..\X.PagedList\X.PagedList.csproj">
+-      <Project>{55002a4e-d21e-432d-baac-1a9beff4115b}</Project>
++      <Project>{55002A4E-D21E-432D-BAAC-1A9BEFF4115B}</Project>
+       <Name>X.PagedList</Name>
+     </ProjectReference>
+   </ItemGroup>

diff --git a/dev-dotnet/X-PagedList/files/X.PagedList.csproj.patch 
b/dev-dotnet/X-PagedList/files/X.PagedList.csproj.patch
new file mode 100644
index 0000000..c51d506
--- /dev/null
+++ b/dev-dotnet/X-PagedList/files/X.PagedList.csproj.patch
@@ -0,0 +1,69 @@
+diff --git a/src/X.PagedList/X.PagedList.csproj 
b/src/X.PagedList/X.PagedList.csproj
+index 3f36f83..d8017f7 100644
+--- a/src/X.PagedList/X.PagedList.csproj
++++ b/src/X.PagedList/X.PagedList.csproj
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" encoding="utf-8"?>
+-<Project ToolsVersion="12.0" DefaultTargets="Build" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
++<Project ToolsVersion="4.0" DefaultTargets="Build" 
xmlns="http://schemas.microsoft.com/developer/msbuild/2003";>
+   <Import 
Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
 
Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"
 />
+   <PropertyGroup>
+     <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
+@@ -10,10 +10,8 @@
+     <AppDesignerFolder>Properties</AppDesignerFolder>
+     <RootNamespace>PagedList</RootNamespace>
+     <AssemblyName>X.PagedList</AssemblyName>
+-    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+-    <TargetFrameworkProfile>Profile328</TargetFrameworkProfile>
++    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+     <FileAlignment>512</FileAlignment>
+-    
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+     <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == 
'*Undefined*'">..\</SolutionDir>
+     <RestorePackages>true</RestorePackages>
+     <NuGetPackageImportStamp>
+@@ -45,7 +43,6 @@
+   <ItemGroup>
+     <!-- A reference to the entire .NET Framework is automatically included 
-->
+     <None Include="App.config" />
+-    <None Include="packages.config" />
+     <None Include="PublicKeyFile.snk" />
+     <None Include="PublicPrivateKeyFile.snk" />
+   </ItemGroup>
+@@ -60,28 +57,7 @@
+     <Compile Include="Properties\AssemblyInfo.cs" />
+     <Compile Include="StaticPagedList.cs" />
+   </ItemGroup>
+-  <ItemGroup>
+-    <Reference Include="System.IO, Version=1.5.11.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+-      
<HintPath>..\packages\Microsoft.Bcl.1.1.10\lib\portable-net40+sl5+win8+wp8+wpa81\System.IO.dll</HintPath>
+-      <Private>True</Private>
+-    </Reference>
+-    <Reference Include="System.Runtime, Version=2.6.10.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+-      
<HintPath>..\packages\Microsoft.Bcl.1.1.10\lib\portable-net40+sl5+win8+wp8+wpa81\System.Runtime.dll</HintPath>
+-      <Private>True</Private>
+-    </Reference>
+-    <Reference Include="System.Threading.Tasks, Version=2.6.10.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
+-      
<HintPath>..\packages\Microsoft.Bcl.1.1.10\lib\portable-net40+sl5+win8+wp8+wpa81\System.Threading.Tasks.dll</HintPath>
+-      <Private>True</Private>
+-    </Reference>
+-  </ItemGroup>
+   <Import 
Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets"
 />
+-  <Import 
Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets"
 
Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')"
 />
+-  <Target Name="EnsureNuGetPackageBuildImports" 
BeforeTargets="PrepareForBuild">
+-    <PropertyGroup>
+-      <ErrorText>This project references NuGet package(s) that are missing on 
this computer. Use NuGet Package Restore to download them.  For more 
information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing 
file is {0}.</ErrorText>
+-    </PropertyGroup>
+-    <Error 
Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')"
 Text="$([System.String]::Format('$(ErrorText)', 
'..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
+-  </Target>
+   <!-- To modify your build process, add your task inside one of the targets 
below and uncomment it. 
+        Other similar extension points exist, see Microsoft.Common.targets.
+   <Target Name="BeforeBuild">
+@@ -89,4 +65,7 @@
+   <Target Name="AfterBuild">
+   </Target>
+   -->
++  <ItemGroup>
++    <Reference Include="System" />
++  </ItemGroup>
+ </Project>
+\ No newline at end of file

diff --git a/dev-dotnet/X-PagedList/files/X.PagedList.nuspec 
b/dev-dotnet/X-PagedList/files/X.PagedList.nuspec
new file mode 100644
index 0000000..cbee3f3
--- /dev/null
+++ b/dev-dotnet/X-PagedList/files/X.PagedList.nuspec
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<package >
+  <metadata>
+    <id>X.PagedList</id>
+    <version>$version$</version>
+    <authors>Troy Goode, Andrew Gubskiy</authors>
+    <owners>Troy Goode, Andrew Gubskiy</owners>
+    
<licenseUrl>https://github.com/kpi-ua/X.PagedList/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/kpi-ua/X.PagedList</projectUrl>
+    
<iconUrl>https://github.com/ArsenShnurkov/X.PagedList/blob/switching-from-pcl/misc/list.svg</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>Nugget for easily paging through any IEnumerable/IQueryable 
in Asp.Net MVC</description>
+    <copyright>Copyright 2015</copyright>
+  </metadata>
+</package>

diff --git a/dev-dotnet/X-PagedList/metadata.xml 
b/dev-dotnet/X-PagedList/metadata.xml
new file mode 100644
index 0000000..e3f566a
--- /dev/null
+++ b/dev-dotnet/X-PagedList/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <herd>dotnet</herd>
+       <maintainer> <!-- https://wiki.gentoo.org/wiki/User:Cynede -->
+               <email>[email protected]</email>
+               <name>Heather Cynede</name>
+       </maintainer>
+       <upstream>
+               <bugs-to>https://github.com/kpi-ua/X.PagedList/issues/</bugs-to>
+               <remote-id type="github">kpi-ua/X.PagedList</remote-id>
+       </upstream>
+       <use>
+               <flag name='pkg-config'>create .pc file(s) for .dll(s) 
installed to gac</flag>
+       </use>
+       <longdescription lang="en">
+                Nugget for easily paging through any IEnumerable/IQueryable in 
Asp.Net MVC
+        </longdescription>
+       <longdescription lang="ru">
+                Набор функций для вывода списков в движке Razor (из ASP .NET)
+        </longdescription>
+</pkgmetadata>

diff --git a/eclass/nupkg.eclass b/eclass/nupkg.eclass
index 4142588..0ff0df9 100644
--- a/eclass/nupkg.eclass
+++ b/eclass/nupkg.eclass
@@ -16,6 +16,36 @@ enuget_restore() {
        nuget restore "$@" || die
 }
 
+# @FUNCTION: enuget_download_rogue_binary
+# @DESCRIPTION: downloads a binary package from 3rd untrusted party repository
+# accepts Id of package as parameter
+enuget_download_rogue_binary() {
+       if [ -d "/var/calculate/remote/distfiles" ]; then
+               NUGET_LOCAL_REPOSITORY_PATH=/var/calculate/remote/packages/NuGet
+       else
+               # this is for all normal gentoo-based distributions
+               NUGET_LOCAL_REPOSITORY_PATH=/usr/local/nuget/nupkg
+       fi
+       #einfo "Downloading rogue binary '$1' into 
'${NUGET_LOCAL_REPOSITORY_PATH}'"
+       # https://www.nuget.org/api/v2/package/{packageID}/{packageVersion}
+       
+       # this will give "* ACCESS DENIED:  open_wr:      
/var/calculate/remote/packages/NuGet" message
+       # wget -c https://www.nuget.org/api/v2/package/$1/$2 -o 
"${LOCAL_NUGET_REPOSITORY_PATH}"
+
+       einfo "Downloading rogue binary '$1' into '${T}/$1.$2.nupkg'"
+       wget -c https://www.nuget.org/api/v2/package/$1/$2 
--directory-prefix="${T}/" --output-document="$1.$2.nupkg" || die
+        # -p ignores directory if it is already exists
+       mkdir -p "${T}/NuGet/" || die
+       echo <<\EOF >"${T}/NuGet/NuGet.Config" || die
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration><config>
+<add key="repositoryPath" value="${T}" />
+</config></configuration>
+EOF
+       einfo "Installing rogue binary '$1' into '${S}'"
+       nuget install "$1" -Version "$2" -OutputDirectory ${S}
+}
+
 # @FUNCTION: enuspec
 # @DESCRIPTION: run nuget pack
 # accepts path to .nuspec file as parameter

Reply via email to