scripts from pkgs

This commit is contained in:
Anton Maisak 2021-06-03 13:59:35 +03:00
parent 1c444229d1
commit 7c0a2941bd
5 changed files with 110 additions and 45 deletions

View File

@ -27,4 +27,5 @@ warn {
.pre { .pre {
padding: 12px 24px !important; padding: 12px 24px !important;
font-size: 0.8rem;
} }

View File

@ -1,48 +1,19 @@
<package-info :package="package" instsize showsbu2></package-info> <pkg :name="'mpc'" instsize showsbu2></pkg>
<script>
new Vue({
el: '#main',
data: { package: {} },
mounted: function () {
this.getPackage('mpc');
},
methods: {
getPackage: function(name) {
getPackage(name)
.then(response => this.package = response);
},
}
})
</script>
## Настройка ## Настройка
<package-script :package="'mpc'" :type="'configure'"></package-script>
```bash
./configure --prefix=/usr \
--disable-static
```
## Сборка ## Сборка
<package-script :package="'mpc'" :type="'build'"></package-script>
```bash
make
```
## Тестирование ## Тестирование
<package-script :package="'mpc'" :type="'test'"></package-script>
```bash
make check
```
## Установка ## Установка
<package-script :package="'mpc'" :type="'install'"></package-script>
```bash
make install
```
## Установленные файлы ## Установленные файлы
Библиотеки: libmpc.so Библиотеки: libmpc.so
<script>
new Vue({ el: '#main' })
</script>

View File

@ -8,9 +8,12 @@ Vue.component('package-info', {
computed: { computed: {
priorityName: function () { priorityName: function () {
switch (this.package.priority) { switch (this.package.priority) {
case 'important': return 'Важный'; case 'important':
case 'required': return 'Необходимый'; return 'Важный';
case 'optional': return 'Необязательный'; case 'required':
return 'Необходимый';
case 'optional':
return 'Необязательный';
} }
return ''; return '';
}, },
@ -47,6 +50,87 @@ Vue.component('package-info', {
</div>`, </div>`,
}); });
Vue.component('pkg', {
props: {
name: String,
showsbu: Boolean,
showsbu2: Boolean,
instsize: Boolean,
},
data() {
return {
package: {},
};
},
computed: {
priorityName: function () {
switch (this.package.priority) {
case 'important':
return 'Важный';
case 'required':
return 'Необходимый';
case 'optional':
return 'Необязательный';
}
return '';
},
},
mounted() {
getPackage(this.name)
.then(res => (this.package = res));
},
template: `
<div v-if="package" class="pkg">
<p>{{ package.description }}</p>
<p class="pkg-desc">
Ссылка для скачивания: <a :href="package.url"><b>{{ package.downloadUrl }}</b></a>
<br />
Текущая версия: <b>{{ package.version }}</b>
<br />
Домашняя страница: <a :href="package.homeUrl"><b>{{ package.homeUrl }}</b></a>
<br />
Важность: <a href="#/prepare/about-priority"><b>{{ priorityName }}</b></a>
<br />
Размер архива: <b>{{ package.size }} Mb</b>
<span v-if="showsbu">
<br />
<span v-if="package.sbu">Приблизительное время сборки: <b>{{ package.sbu }} SBU</b></span>
</span>
<span v-if="showsbu2">
<br />
<span v-if="package.sbu2">Приблизительное время сборки: <b>{{ package.sbu2 }} SBU</b></span>
</span>
<span v-if="instsize">
<br />
<span v-if="package.installedSize">Приблизительный размер после установки: <b>{{ package.installedSize }} МБ</b></span>
</span>
</p>
<slot></slot>
</div>`,
});
Vue.component('package-script', {
props: {
package: String,
type: String,
},
data() {
return {
info: null
};
},
mounted() {
getPackageScript(this.package, this.type)
.then(res => (this.info = res));
},
template: `
<pre class="pre">
{{ info }}
</pre>`,
});
Vue.component('warn', { Vue.component('warn', {
template: ` template: `
<div class="warn-description"> <div class="warn-description">

View File

@ -15,6 +15,7 @@ window.$docsify = {
autoHeader: true, autoHeader: true,
executeScript: true, executeScript: true,
mergeNavbar: true, mergeNavbar: true,
el: '#main',
notFoundPage: { notFoundPage: {
'/': '_404.md', '/': '_404.md',
}, },
@ -63,5 +64,12 @@ getPackages = function () {
// Получить пакет по наименованию // Получить пакет по наименованию
getPackage = function (name) { getPackage = function (name) {
return axios.get(pkgsSrc) return axios.get(pkgsSrc)
.then(response => response.data.filter(pkg => pkg.name === name)[0]); .then(response => (response.data.filter(pkg => pkg.name === name))[0]);
}
getPackageScript = function (name, script) {
return axios.get(`${pkgsUrlBase}/${name}/${script}`, {
responseType: 'text'
})
.then(response => response.data);
} }

View File

@ -45,7 +45,7 @@
</head> </head>
<body> <body>
<div id="app">Пожалуйста, подождите...</div> <div id="main">Пожалуйста, подождите...</div>
<script src="config.js"></script> <script src="config.js"></script>
<script src="//unpkg.com/vue/dist/vue.min.js"></script> <script src="//unpkg.com/vue/dist/vue.min.js"></script>
@ -58,6 +58,7 @@
<script src="//unpkg.com/docsify-copy-code"></script> <script src="//unpkg.com/docsify-copy-code"></script>
<script src="//unpkg.com/docsify-pagination/dist/docsify-pagination.min.js"></script> <script src="//unpkg.com/docsify-pagination/dist/docsify-pagination.min.js"></script>
<script src="common.js"></script> <script src="common.js"></script>
</body> </body>
</html> </html>